首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android UI元素运用初步

2012-08-25 
Android UI元素使用初步?Android中视图组件(View)和布局组件(Layout)的使用非常重要,本例演示了其中几种重

Android UI元素使用初步



?Android中视图组件(View)和布局组件(Layout)的使用非常重要,本例演示了其中几种重要的使用方法:

主界面有四个Button构成,每个分别触发不同的Activity。


Android UI元素运用初步
?

?

public class activity01 extends Activity {Button button1;Button button2;Button button3;Button button4;OnClickListener listener1=null;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        listener1=new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent=new Intent(activity01.this,activityFrameLayout.class);setTitle("FrameLayout");startActivity(intent);}};button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(listener1);        button2=(Button)findViewById(R.id.button2);        button2.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent=new Intent(activity01.this,activityRelativeLayout.class);setTitle("RelativeLayout");startActivity(intent);}        });//button3与button4省略           }}

对于Button的监听事件的绑定通常有两种方式,如上所示,一种是定义监听类,再对Button进行绑定;第二种为使用匿名内部类。

接下来通过Intent进行Activity之间的跳转,注意目标Activity要在AndroidManifest.xml中进行声明:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.sunny" android:versionCode="1" android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".activity01" android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".activityFrameLayout"></activity><activity android:name=".activityRelativeLayout"></activity><activity android:name=".activityRelaLineLayout"></activity><activity android:name=".activityTableLayout"></activity></application><uses-sdk android:minSdkVersion="9" /></manifest> 

??几种不同的布局视图:

FrameLayout:


Android UI元素运用初步
?

<?xml version="1.0" encoding="utf-8"?><FrameLayout android:id="@+id/left"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="wrap_content"><ImageView android:id="@+id/photo" android:src="@drawable/bg"android:layout_width="wrap_content" android:layout_height="wrap_content" /><ImageView android:id="@+id/photo2" android:src="@drawable/tp"android:layout_width="wrap_content" android:layout_height="wrap_content" /></FrameLayout>

?RelativeLayout:


Android UI元素运用初步
?

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="wrap_content"android:background="@drawable/blue" android:padding="10dip"><TextView android:id="@+id/label" android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="请输入姓名:" /><EditText android:id="@+id/entry" android:layout_width="fill_parent"android:layout_height="wrap_content" android:background="@android:drawable/editbox_background"android:layout_below="@id/label" /><Button android:id="@+id/cancel" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_below="@id/entry"android:layout_alignParentRight="true" android:layout_marginLeft="10dip"android:text="取消" /><Button android:id="@+id/ok" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_toLeftOf="@id/cancel"android:layout_alignTop="@id/cancel" android:text="确定" /></RelativeLayout>

?注意,以上代码中android:background="@drawable/blue" 需在string.xml中添加

<drawable name="blue">#770000ff</drawable>

?

TableLayout:


Android UI元素运用初步
?

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:stretchColumns="1"><TableRow><TextView android:text="用户名" android:textStyle="bold"android:gravity="right" android:padding="3dip" /><EditText android:id="@+id/username" android:padding="3dip"android:scrollHorizontally="true" /></TableRow><TableRow><TextView android:text="登陆密码" android:textStyle="bold"android:gravity="right" android:padding="3dip" /><EditText android:id="@+id/password" android:padding="3dip"android:password="true" android:scrollHorizontally="true" /></TableRow><TableRow android:gravity="right"><Button android:id="@+id/cancel1" android:text="取消" /><Button android:id="@+id/ok1" android:text="登陆" /></TableRow></TableLayout>

?

在程序中控制Layout的方法,在linearLayout中嵌套两个RelationLayout:


Android UI元素运用初步
?

public class activityRelaLineLayout extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);LinearLayout layoutMain = new LinearLayout(this);// 构建一个LayoutlayoutMain.setOrientation(LinearLayout.HORIZONTAL);// 设置LinearLayout中元素布局方向setContentView(layoutMain);LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);// 得到LayoutInflater对象,该对象可以对xml的布局文件进行解析,并生成一个ViewRelativeLayout layoutleft = (RelativeLayout) inflate.inflate(R.layout.left, null);//调用inflate方法将left.xml进行解析,并生成一个RelativeLayout布局RelativeLayout layoutright = (RelativeLayout) inflate.inflate(R.layout.right, null);RelativeLayout.LayoutParams relParm = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);//生成参数layoutMain.addView(layoutleft, 100, 100);layoutMain.addView(layoutright, relParm);}}

?

其中R.layout.left:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:id="@+id/left"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"><TextView android:id="@+id/view1" android:layout_width="fill_parent"android:layout_height="50px" android:text="第一组第一项" /><TextView android:id="@+id/view2" android:layout_width="fill_parent"android:layout_height="50px" android:text="第一组第二项"android:layout_below="@id/view1" /></RelativeLayout>

?

R.layout.left与上类似。

热点排行