android学习笔记(9)使用XML布局文件和Java代码混合控制UI界面

2014-12-4 19:15:29     30 人阅读    

           前面已经提到,完全使用Java代码来控制UI界面不仅烦琐、而且不利于解耦;而完全 利用XML布局文件来控制UI界面虽然方便、便捷,但难免有失灵活。因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面。


          当混合使用XML布局文件和代码来控制UI界面时,习惯上把变化小、行为比较固定的 组件放在XML布局文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码来管理。


      实例:简单图片浏览器
例如下面的应用,我们先在布局文件中定义一个简单的线性布局容器,该布局文件的代码如下。
程序清单:\layout\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="fill_parent"
 android:layout_height="fill_parent"
 >
</LinearLayout>

上面的布局文件只是定义了一个简单的线性布局。接下来我们会在程序中获取该线性布局容器,并往该容器中添加组件。下面是该示例的程序代码。
程序淸单:MixViewjava

package org.crazyit.mixview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;


public class MixView extends Activity
{
 //定义一个访问图片的数组
 int[] images = new int[]{
  R.drawable.java,
  R.drawable.ee,
  R.drawable.classic,
  R.drawable.ajax,
  R.drawable.xml,
 };
 int currentImg = 0;
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //获取LinearLayout布局容器
  LinearLayout main = (LinearLayout)findViewById(R.id.root);
  //程序创建ImageView组件
  final ImageView image = new ImageView(this);
  //将ImageView组件添加到LinearLayout布局容器中
  main.addView(image);
  //初始化时显示第一张图片
  image.setImageResource(images[0]);
  image.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View v)
   {
    if (currentImg >= 4)
    {
     currentImg = -1;
    }
    //改变ImageView里显示的图片
    image.setImageResource(images[++currentImg]);
   }
  });
 }
}

上面的程序中第一行粗体字代码获取了该Activity所显示的LinearLayout(线性布局管理器),第2和第3行粗体字代码用于创建一个ImageView,并将该ImageView添加到


       LinearLayout容器中,其中LinearLayout布局管理器通过XML布局文件管理,而Image View组件则由Java代码管理。
除此之外,上面的程序还为Image View组件添加了一个 单击事件。当用户单击该组件时,Image View显示下一张图 片。


原文地址:http://www.itmmd.com/201412/256.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

大型网站架构设计-HBase 可靠性、高可扩展性、实时读/写的列存储数据库   上一篇
下一篇  android学习笔记(8)使用XML布局文件控制android UI界面

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!