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]);
}
});
}
}
运行截图:
初始界面: 点击图片浏览下一张:
点击图片浏览下一张: 点击图片浏览下一张: