如何自定义Android 界面说明?

移动开发 Android
Android 界面编程有两种基本的方法,一种是在代码中,动态创建一个个组件,及把这些组件用Layout来进行组合成复杂的界面展现。

如果你想直接转到你自己定义的Android 界面,你可以在接收者的IntentFilter中加入一个自定义的Action值,他们都是使用了设计模式的观察者模式,仅供大家学习参考哦。

一种是用图形化的方式来编写 布局Layout,这些布局被保存在XML文件中,会编译成资源,被程序中Activity来加载(setContentView()), 再通过findViewById方式来获得每一个界面组件的引用进行操作。

对于大多数人来说,喜欢最直观的方式,既代码中动态生成的方式。我们就先从这里说起,至于可视化编程及布局资源的方式以后专门来讲述。

一,布局管理(Layout)
每一个界面组件都是View的子类,都可以单独占用一个屏幕,但是真正的有用的界面都是这些组件的组合,在Android 界面中都是用各种Layout来进行布局管理,这与传统的J2SE中的一些AWT,SWING界面方式基本相同,这里就不多说。

二,一个单独的界面元素:

  1. public class HelloActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         TextView tv = new TextView(this);  
  7.         tv.setText("Hello, World!");  
  8.         this.setContentView(tv);  
  9.          
  10.     }  
  11. }  
  12. 这里并没有用到Layout,这就是单独的组件方式。也可以改为:  
  13. super.onCreate(savedInstanceState);  
  14.         Button btn = new Button(this);  
  15.         btn.setText("TestButton");  
  16.         this.setContentView(btn);  
  17. 编译运行,会有一个全屏的Button,当然这不是你想要的实用的界面.那我们就用Layout来布局  
  18.         super.onCreate(savedInstanceState);  
  19.         Button btn = new Button(this);  
  20.         btn.setText("TestButton");  
  21.         Button btn2 = new Button(this);  
  22.         btn2.setText("TestButton2");  
  23.         LinearLayout layout = new LinearLayout(this);  
  24.         layout.setOrientation(LinearLayout.VERTICAL);  
  25.         layout.addView(btn);  
  26.         layout.addView(btn2);  
  27.         this.setContentView(layout);  

编译运行,你就可以看到了两个上下排列的按钮,当然对于布局管理器的使用,做过PC 上AWT,SWING的人都不陌生,这里就不赘述。那如何响应事件呢: 大家猜一猜?想必大家不难猜到。

在AWT中,在手机的J2ME中,都是用Listener 来处理事件响应,Android 界面也未能脱俗。这与Blackberry,Symbian中的Observer是同一个道理。都是使用了设计模式的观察者模式。下面来看一个能响应事件的例子。#t#

步骤是:
一,生成两个Button,配置Click事件监听者为HelloActivity ,此类实现了OnClickListener接口。
二,放入布局,按布局显示两个Button
三,按下其中一个Button,生成Click事件,调用HelloActivity 的OnClick接口函数。
四,对于View参数的值,判断是哪个View(Button)。改写Activity的Titile内容。注意,可别去对比View.getId(),缺省情况下,每个组件的Id值都为-1,除非人为设定Id值,用可视化编程时,为自动为其生成一个Id值。

责任编辑:chenqingxiang 来源: 清华大学出版社
相关推荐

2013-03-28 10:58:30

自定义Android界android

2016-11-16 21:55:55

源码分析自定义view androi

2016-12-26 15:25:59

Android自定义View

2017-10-25 14:07:54

APPiOSxcode

2013-04-01 14:35:10

Android开发Android自定义x

2013-06-27 11:10:01

iOS开发自定义UISlider

2017-05-18 12:36:16

android万能适配器列表视图

2017-05-19 10:03:31

AndroidBaseAdapter实践

2016-04-12 10:07:55

AndroidViewList

2011-08-25 11:44:21

LUA脚本魔兽世界

2009-09-07 22:00:15

LINQ自定义

2015-02-12 15:33:43

微信SDK

2015-02-11 17:49:35

Android源码自定义控件

2013-05-02 14:08:18

2014-12-10 10:37:45

Android自定义布局

2018-01-23 11:00:10

Hadoop3.0Yarn资源

2013-01-09 17:22:38

Android开发Camera

2009-09-03 13:34:03

.NET自定义控件

2021-12-31 08:43:45

插件KubeScheduler

2023-01-03 07:40:27

自定义滑块组件
点赞
收藏

51CTO技术栈公众号