基于安卓平台的程序设计:Android用户界面1

上传人:努力****83 文档编号:186998022 上传时间:2023-02-10 格式:PPT 页数:23 大小:370KB
收藏 版权申诉 举报 下载
基于安卓平台的程序设计:Android用户界面1_第1页
第1页 / 共23页
基于安卓平台的程序设计:Android用户界面1_第2页
第2页 / 共23页
基于安卓平台的程序设计:Android用户界面1_第3页
第3页 / 共23页
资源描述:

《基于安卓平台的程序设计:Android用户界面1》由会员分享,可在线阅读,更多相关《基于安卓平台的程序设计:Android用户界面1(23页珍藏版)》请在装配图网上搜索。

1、Android用户界面用户界面(1)(1)1 用户界面基础n用户界面(User Interface,UI)是系统和用户之间进行信息交换的媒介,实现信息的内部形式与人类可以接受形式之间的转换q在计算机出现早期,批处理界面(1945-1968)和命令行界面(1969-1983)得到广泛的使用q目前,流行图像用户界面(Graphical User Interface,GUI),采用图形方式与用户进行交互的界面q未来的用户界面将更多的运用虚拟现实技术,使用户能够摆脱键盘与鼠标的交互方式,而通过动作、语言,甚至是脑电波来控制计算机1 用户界面基础n设计手机用户界面应解决的问题q需要界面设计与程序逻辑完全

2、分离,这样不仅有利于他们的并行开发,而且在后期修改界面时,也不用再次修改程序的逻辑代码q根据不同型号手机的屏幕解析度、尺寸和纵横比各不相同,自动调整界面上部分控件的位置和尺寸,避免因为屏幕信息的变化而出现显示错误q能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用户界面,避免出现凌乱、拥挤的用户界面qAndroid已经解决了前两个问题,使用XML文件描述用户界面;资源资源文件独立保存在资源文件夹中;对界用户面描述非常灵活,允许不明确定义界面元素的位置和尺寸,仅声明界面元素的相对位置和粗略尺寸1 用户界面基础nAndroid提供两种方式控制界面组件的外观和行为q在XML 布局文件中通过X

3、ML属性进行控制 1 用户界面基础对应的 string.xml:ActivityLifeCycle hello,world!Settings1 用户界面基础q在Java程序里通过相应组件的方法控制组件外观和行为public class ActivityLifeCycle extends Activity TextView txt;Button bt;public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);txt=(TextVie

4、w)findViewById(R.id.txtHello);bt=(Button)findViewById(R.id.btModify);bt.setOnClickListener(new Button.OnClickListener()Overridepublic void onClick(View v)/TODO Auto-generated method stubtxt.setText(Modified););1 用户界面基础nAndroid用户界面框架qAndroid用户界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型n提

5、供了处理用户输入的控制器(Controller)n显示用户界面和图像的视图(View),以及保存数据和代码的模型(Model)1 用户界面基础nAndroid用户界面框架qMVC模型nMVC模型中的控制器能够接受并响应程序的外部动作,如按键动作或触摸屏动作等n控制器使用队列处理外部动作,每个外部动作作为一个独立的事件被加入队列中,然后Android用户界面框架按照“先进先出”的规则从队列中获取事件,并将这个事件分配给所对应的事件处理函数1 用户界面基础nAndroid用户界面框架q单线程用户界面n在单线程用户界面中,控制器从队列中获取事件和视图在屏幕上绘制用户界面,使用的都是同一个线程n特点:

6、处理函数具有顺序性,能够降低应用程序的复杂程度,同时也能减低开发的难度n缺点:如果事件处理函数过于复杂,可能会导致用户界面失去响应nAndroid中,不允许创建界面的线程以外的其他线程对界面进行操作。1 用户界面基础nAndroid用户界面框架qAndroid用户界面框架(Android UI Framework)采用视图树(View Tree)模型nAndroid用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树nAndroid系统会依据视图树的结构从上至下绘制每一个界面元素。每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制1 用户界面基础nAndr

7、oid用户界面框架q视图树n视图树由View和ViewGroup构成nView是界面的最基本的可视单元,存储了屏幕上特定矩形区域内所显示内容的数据结构,并能够实现所占据区域的界面绘制、焦点变化、用户输入和界面事件处理等功能nView也是一个重要的基类,所有在界面上的可见元素都是View的子类nViewGroup是一种能够承载含多个View的显示单元nViewGroup功能:一个是承载界面布局,另一个是承载具有原子特性的重构模块1 用户界面基础qView 以及由View 派生的界面组件,有大量xml属性以及相应方法,用于控制其外观和行为。以View为例:(P38)(在xml文件中,属性均以and

8、roid:开头,如:android:backgroundXML属性属性相应方法相应方法说明说明backgroundsetBackgroundResource(int)设置背景色idfindViewById(int id)idlayout_gravity对齐方式layout_height高度layout_margin边距留空visibilitysetVisibility(int)可见性2 常用的组件xml属性及其取值nlayout_height,layout_width控制组件的高和宽取值(放在“”中):wrap_content:高度或宽度正好包住其内容(比如文字)match_parent(fi

9、ll_parent):高度或宽度和父容器一样40dp:40个dp2 常用的组件xml属性及其取值nlayout_gravity:指明组件在父容器中的相对位置ngravity:指明本组件文字在组件中的位置这两个属性的取值:ntop、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。而且这些属性是可以多选的,用“|”分开。默认这个的值是:Gravity.LEFT例如:android:gravity=top|center参看:http:

10、/ 常用的组件xml属性及其取值n更常用的做法是使得以下值为 true 来设置组件在父容器中的位置:android:layout_alignParentLeft=“true”左对齐android:layout_alignParentRight=“true”右对齐android:layout_alignParentTop=“true”上对齐android:layout_alignParentBottom=“true”下对齐android:layout_centerVertical=“true”垂直居中android:layout_centerHorizontal=true 水平居中2 常用的组件

11、xml属性及其取值为组件指定上下左右的边距(到其他组件的距离)android:layout_marginBottom=60dp“android:layout_marginLeft=60dp“android:layout_marginTop=60dp“android:layout_marginRight=60dp“对应的方法为:setMargins(int,int,int,int)3 用代码控制界面的示例(P41)public class CodeView extends Activity public void onCreate(Bundle savedInstanceState)super.

12、onCreate(savedInstanceState);/创建一个线性布局管理器LinearLayout layout=new LinearLayout(this);/设置该Activity显示layoutsuper.setContentView(layout);layout.setOrientation(LinearLayout.VERTICAL);/创建一个TextViewfinal TextView show=new TextView(this);/创建一个按钮Button bn=new Button(this);bn.setText(R.string.ok);bn.setLayout

13、Params(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);/向Layout容器中添加TextViewlayout.addView(show);/向Layout容器中添加按钮layout.addView(bn);/为按钮绑定一个事件监听器bn.setOnClickListener(new OnClickListener()Overridepublic void onClick(View v)show.setText(Hello,Android

14、,+new java.util.Date(););关于LayoutParams的用法:http:/ XMLXML和代码混合控制界面的示例和代码混合控制界面的示例(P42)(P42)5 开发自定义开发自定义View(P44)View(P44)public class public class DrawViewDrawView extends View extends View public float public float currentXcurrentX=40;=40;public float public float currentYcurrentY=50;=50;/*parampara

15、m context context */public public DrawViewDrawView(Context(Context contextcontext)super(context);super(context);/TODO Auto-generated constructor stub/TODO Auto-generated constructor stub OverrideOverridepublic void public void onDrawonDraw(Canvas (Canvas canvascanvas)super.onDrawsuper.onDraw(canvas);(canvas);/创建画笔创建画笔Paint p=new Paint();Paint p=new Paint();/设置画笔的颜色设置画笔的颜色p.setColorp.setColor(Color.REDColor.RED););/绘制一个小圆(作为小球)绘制一个小圆(作为小球)canvas.drawCirclecanvas.drawCircle(currentXcurrentX,currentYcurrentY,15,p);,15,p);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!