Android的界面可以通过XML文件和Java代码两种不同的方法进行控制。
完全使用Java代码来控制UI不仅繁琐,而且不利于解耦。
完全使用XML布局文件来控制UI显得方便、便捷,但难免有失灵活。
因此,有些时候就可能需要混合使用XML布局文件和Java代码来控制Android App的UI界面。
习惯上,一般将变化小、行为比较固定的组件放在XML文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码来管理。
实例·【图片浏览器】
布局文件:activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <!-- 定义一个线性布局容器 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > </LinearLayout>
源代码:MainActivity.java
package com.zsl.uicontroldemo; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { int[] images = new int[] { R.drawable.jay1, R.drawable.jay2, R.drawable.jay3, R.drawable.jay4, }; int curImage = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout main = (LinearLayout)findViewById(R.id.root); final ImageView iv = new ImageView(this); main.addView(iv); iv.setImageResource(images[curImage]); iv.setOnClickListener(new OnClickListener() { public void onClick(View v) { curImage = (curImage + 1) % images.length; iv.setImageResource(images[curImage]); } }); } }
运行截图:
初始界面: 点击图片浏览下一张:
点击图片浏览下一张: 点击图片浏览下一张: