使用xml及java代码混合的方式来设置图形界面
生活随笔
收集整理的這篇文章主要介紹了
使用xml及java代码混合的方式来设置图形界面
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
參考《瘋狂android講義》第2版2.1節(jié)
設(shè)置android的圖形界面有三種方法:
1、使用純xml文件
2、使用純java,代碼臃腫復(fù)雜,不建議使用
3、使用xml與java混合,前者用于固定基本不變的view,后者用于經(jīng)常變化的view。
示例:使用xml+java,前者指定layout,后者指定一個imageView
MainAcitivity.java
package com.ljh.mixviewdemo;import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout;public class MainActivity extends Activity {//若這兩個變量放到方法里面,則要求是final的。int currentImage = 0;int[] images = new int[]{R.drawable.ajax, R.drawable.classic, R.drawable.ee, R.drawable.java, R.drawable.xml};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//根據(jù) id得到layout,注意要為layout添加一個id,而不是使用R.layout.activity_main作為 id來查找。LinearLayout layout = (LinearLayout) this.findViewById(R.id.root);//定義一個ImageView,并將之添加至layout中。final ImageView iv = new ImageView(this); layout.addView(iv);//指定所要顯示的圖片iv.setImageResource(images[0]);//setOnClickListener是View的方法,亦即所有的view都可點(diǎn)擊的。iv.setOnClickListener(new OnClickListener(){public void onClick(View v){iv.setImageResource(images[++currentImage%images.length]);}});} } activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"android:orientation="vertical" ></LinearLayout> 見歸檔代碼MixViewDemo.zip
事實上,ImageView也不是經(jīng)常變的,變的只是里面的內(nèi)容,因此可以在xml中指定這個ImageView的屬性,而在java中指定它所要顯示的內(nèi)容。代碼修改如下:
MainActivity.java
package com.ljh.mixviewdemo;import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout;public class MainActivity extends Activity {//若這兩個變量放到方法里面,則要求是final的。int currentImage = 0;int[] images = new int[]{R.drawable.ajax, R.drawable.classic, R.drawable.ee, R.drawable.java, R.drawable.xml};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//根據(jù) id得到layout,注意要為layout添加一個id,而不是使用R.layout.activity_main作為 id來查找。LinearLayout layout = (LinearLayout) this.findViewById(R.id.root);/* 定義一個ImageView,并將之添加至layout中。final ImageView iv = new ImageView(this); layout.addView(iv);*///不再需要新建一個ImageView,而是獲取xml中的IamgeViewfinal ImageView iv = (ImageView) this.findViewById(R.id.iv_books);//指定所要顯示的圖片iv.setImageResource(images[0]);//setOnClickListener是View的方法,亦即所有的view都可點(diǎn)擊的。iv.setOnClickListener(new OnClickListener(){public void onClick(View v){iv.setImageResource(images[++currentImage%images.length]);}});} }activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"android:orientation="vertical" ><ImageView android:id="@+id/iv_books"android:layout_width="wrap_content"android:layout_height="wrap_content"android:contentDescription="@string/my_published_book"/></LinearLayout>
總結(jié)
以上是生活随笔為你收集整理的使用xml及java代码混合的方式来设置图形界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android中对手机文件进行读写
- 下一篇: 从Ecipse中导出程序至apk