完全使用Java代码控制UI界面不仅繁琐,而且不利于解耦;而完全利用XML布局晚间来控制UI界面虽然方便,便捷,但难免有失灵活。因此有时候,可能需要混合使用XML布局文件和代码来控制UI界面。
当混合使用XML布局和Java代码来控制UI界面时,习惯上把变化下,行为比较固定的组件放在XML布局文件中管理,而那些变化比较多,行为控制比较复杂的控件则交给Java代码来管理。
简单思路:XML布局中一个空布局——java代码中初始化这个布局,new一个ImageView对象,new一个用于存储图片数据的数组——将ImageView加入addView()到布局中——给imageview赋值,添加点击事件
1.xml代码
<LinearLayout
android:id="@+id/read_ly"
android:orientation="vertical"
android:layout_marginBottom="45dp"
android:layout_above="@+id/next"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></LinearLayout>
2.Java代码
LinearLayout main=(LinearLayout)findViewById(R.id.root);
//程序创建ImageView组件
final ImageView image=new ImageView(this);
main.addView(image);
//初始化时显示第一张图片
image.setImageResource(images[0]);
image.setOnClickLister(new View.OnClickLister()){
@Override
public void onClick(View v){
//改变ImageView里的显示的图片
image.setImageResource(images[++currentImg%images.length]);
}
}