使用xml及java代码混合的方式来设置图形界面 分类: H1_ANDROID 2013-10-26 17:33 1859人阅读 评论(0) 收藏
2013-10-26 17:33
796 查看
参考《疯狂android讲义》第2版2.1节
设置android的图形界面有三种方法:
1、使用纯xml文件
2、使用纯java,代码臃肿复杂,不建议使用
3、使用xml与java混合,前者用于固定基本不变的view,后者用于经常变化的view。
示例:使用xml+java,前者指定layout,后者指定一个imageView
MainAcitivity.java
activity_main.xml
见归档代码MixViewDemo.zip
事实上,ImageView也不是经常变的,变的只是里面的内容,因此可以在xml中指定这个ImageView的属性,而在java中指定它所要显示的内容。代码修改如下:
MainActivity.java
activity_main.xml
设置android的图形界面有三种方法:
1、使用纯xml文件
2、使用纯java,代码臃肿复杂,不建议使用
3、使用xml与java混合,前者用于固定基本不变的view,后者用于经常变化的view。
示例:使用xml+java,前者指定layout,后者指定一个imageView
MainAcitivity.java
package com.ljh.mixviewdemo; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { //若这两个变量放到方法里面,则要求是final的。 int currentImage = 0; int[] images = new int[]{R.drawable.ajax, R.drawable.classic, R.drawable.ee, R.drawable.java, R.drawable.xml}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //根据 id得到layout,注意要为layout添加一个id,而不是使用R.layout.activity_main作为 id来查找。 LinearLayout layout = (LinearLayout) this.findViewById(R.id.root); //定义一个ImageView,并将之添加至layout中。 final ImageView iv = new ImageView(this); layout.addView(iv); //指定所要显示的图片 iv.setImageResource(images[0]); //setOnClickListener是View的方法,亦即所有的view都可点击的。 iv.setOnClickListener(new OnClickListener(){ public void onClick(View v){ iv.setImageResource(images[++currentImage%images.length]); } }); } }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > </LinearLayout>
见归档代码MixViewDemo.zip
事实上,ImageView也不是经常变的,变的只是里面的内容,因此可以在xml中指定这个ImageView的属性,而在java中指定它所要显示的内容。代码修改如下:
MainActivity.java
package com.ljh.mixviewdemo; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { //若这两个变量放到方法里面,则要求是final的。 int currentImage = 0; int[] images = new int[]{R.drawable.ajax, R.drawable.classic, R.drawable.ee, R.drawable.java, R.drawable.xml}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //根据 id得到layout,注意要为layout添加一个id,而不是使用R.layout.activity_main作为 id来查找。 LinearLayout layout = (LinearLayout) this.findViewById(R.id.root); /* 定义一个ImageView,并将之添加至layout中。 final ImageView iv = new ImageView(this); layout.addView(iv);*/ //不再需要新建一个ImageView,而是获取xml中的IamgeView final ImageView iv = (ImageView) this.findViewById(R.id.iv_books); //指定所要显示的图片 iv.setImageResource(images[0]); //setOnClickListener是View的方法,亦即所有的view都可点击的。 iv.setOnClickListener(new OnClickListener(){ public void onClick(View v){ iv.setImageResource(images[++currentImage%images.length]); } }); } }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <ImageView android:id="@+id/iv_books" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/my_published_book" /> </LinearLayout>
相关文章推荐
- Android界面设计的4种方式之三——使用XML和JAVA代码混合控制UI界面
- java枚举类型enum的使用 分类: Android 2015-07-23 17:36 12人阅读 评论(0) 收藏
- 安卓ADT和JAVA安装用户环境变量的设置 分类: Android安装及配置 2014-11-26 10:22 89人阅读 评论(0) 收藏
- 简单使用achartengine绘制折线图 分类: Android图形动画 2014-06-26 10:30 111人阅读 评论(0) 收藏
- Android运行时异常“Binary XML file line # : Error inflating class” 分类: Android界面和组件 2014-09-12 00:19 94人阅读 评论(0) 收藏
- 菜单之二:使用xml文件定义菜单 分类: H1_ANDROID 2013-11-03 09:39 1038人阅读 评论(0) 收藏
- 使用xml及java代码混合的方式来设置图形界面
- android主题Theme.Holo.Light下如何设置程序的标题字体颜色为白色 分类: Android界面和组件 2014-06-21 14:02 327人阅读 评论(0) 收藏
- android主题Theme.NoTitleBar.Fullscreen下如何设置程序的字体颜色为黑色 分类: Android界面和组件 2014-06-21 14:04 162人阅读 评论(0) 收藏
- 使用xml及java代码混合的方式来设置图形界面
- 使用xml及java代码混合的方式来设置图形界面
- 使用xml及java代码混合的方式来设置图形界面
- CursorAdapter类的使用 分类: Android界面和组件 2014-06-12 14:34 98人阅读 评论(0) 收藏
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解ZZ 分类: Android安装及配置 2015-01-15 19:39 59人阅读 评论(0) 收藏
- 使用xml及java代码混合的方式来设置图形界面
- Android自定义控件系列二:自定义开关按钮(一) 标签: Android自定义控件Java开关按钮自定义组件 2014-11-03 10:55 2735人阅读 评论(6) 收藏 举报 分类: J
- android控件根据屏幕大小自适应 分类: Android界面和组件 2014-07-01 20:12 94人阅读 评论(0) 收藏
- 打开投影机的2中方式:串口、单板机 分类: java 2010-04-13 20:19 679人阅读 评论(0) 收藏
- 使用AlarmManager启动广播、服务、页面(Android定时器) 分类: Android 2015-07-14 17:49 13人阅读 评论(0) 收藏