当前位置: 网学 > 编程文档 > Android > 正文

Android_UI

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: myeducs.cn 发布时间: 13/03/17

【网学网提醒】:网学会员为广大网友收集整理了,Android_UI,希望对大家有所帮助!


    pangxq116(网学)贡献
    
    Android的UI设计原理的设计原理
    以xml的形式设计UI
    开发环境用Androidsdk的代码和工具开发Android应用程序,你需要适合的开发电脑以及开发环境,如下描述:
    所需操作系统:所需操作系统WindowsXP或VistaMacOSX10.4.8或更高版本(仅支持x86)Linux(LinuxUbuntuDapperDrake版本已测试)所需开发环境:所需开发环境EclipseIDE
    Eclipse3.3(Europa),3.4(Ganymede)
    EclipseJDT插件(大多数的EclipseIDE包包含)WST(可选,但Android编辑器的功能需要,它被包含在mostEclipseIDEpackages中)
    JDK5或JDK6(只有JRE是不够的)AndroidDevelopmentTools插件(可选)不兼容GNUJava编译器(gcj)
    其他开发环境或IDE
    JDK5或JDK6(仅有JRE不够)ApacheAnt1.6.5或更高版本(Linux和Mac环境下),1.7或更高版本(Windows环境下)不兼容GNUJava编译器(gcj)
    安装SDK安装Eclipse插件(ADT)更新ADT插件
    创建工程创建一个新的Android项目打开Eclipse,选择File>New>Project如果Android的Eclipse的插件正确安装了,弹出的对话框里就会有一项"Android",这一项有唯一的子项"AndroidProject".选中"AndroidProject",点下一步.
    填写工程的详细信息下一步需要你填写项目的详细信息,这里有个例子:每一项具体的意思:工程名你想把工程保存在你机器上哪个目录里包名>包的命名空间(需要遵循java编程语言的命名规则),你的所有代码都会在这个命名空间下.这也会生成包的名称从而活动自动生成.你使用的这个包的名字必须和其他安装在你机器上的包名字不冲突,所以,使用一个标准规则的包名字是非常重要的.如上例,我们使用包的名字为"com.android",但你需要使用一个不同的类型."活动"名这是插件为你自动生成类的名字.它也会是Android活动类的一个子类.一个活动仅仅是一个包含一些功能并能执行的类.如果它选择,可以创建用户界面,但这不是必须的.程序名这是最后生成应用程序的名字.可选框里"Usedefaultlocation"允许你选择其他目录保存项目产生的其它文件.
    编辑自动生成代码运行插件后,会自动生成一个类"HelloAndroid"(可以在程序包里HelloAndroid>src>com.android.hello找到).像这样:publicclassHelloAndroidextendsActivity{/**活动第一次被创建后调用.**/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}现在,你可以执行程序了.不过我们还可以进一步研究下,这样我们能更好得理解程序.所以,下一步我们可以改一些代码
    建立UI建立看下面我们修改的代
    码,你可以在你的HelloAndroid.java文件里做相同的修改,我们来逐行分析:packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassHelloAndroidextendsActivity{/**活动第一次被创建后调用*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);TextViewtv=newTextView(this);tv.setText("Hello,Android");setContentView(tv);}}
    在Android里,用户接口由一些称之为视图的不同层次的类组成.一个视图就是一个简单的对象.如单选框,动画控件,一个文本框(我们的例子里的),我们称处理文本的这样一个子视图就叫TextView.这里教你如何创建TextView.这里教你如何创建TextView:TextViewtv=newTextView(this);TextView构造器就是Android上下文的实例,这个上下文仅仅是指向系统的一个句柄,它提供像资源处理之类的服务.包含一些进入资料库以及参数选择的入口.这个活动也是继承上下文.HelloAndroid类是活动的一个子类,它也是一个上下文,我们能通过this操作TextView.创建TextView后,加入需要显示的内容:tv.setText("Hello,Android");这里很正常.我们创建一个TextView,然后告诉它显示的内容.最后一步就是让TextView在屏幕上显示出来,像这样:setContentView(tv);活动里setContentView()的方法表明哪个视图需要在当前UI上被操作.如果一个活动不能调用这个方法,那么当前就没有界面系统显示为一个空白屏幕.我们仅仅想显示一些文本,所以我们将刚才创建的TextView连接上这就是Android平台里的"Hello,World",当然,我们可以看下运行情
    执行代码:Hello,Android执行代码:,Eclipse的插件使得你的程序很容易运行.选择Run>->OpenRunDialog菜单.(Eclipse3.4版本中,菜单为Run->RunConfigurations)可以看到这样的对话框
    一步,选择"AndroidApplication",点击在左上角(按钮像一张纸上有个"+"号)或者双击"AndroidApplication".有个新的选项"New_configuration".
    将名字改得更形象一点,如"Hello,Android",然后按Browse按钮选择你的项目,(如果你Eclipse里有多个Android项目需要打开,确定要选择正确)插件会会自动扫描你项目里的活动子类,然后在"活动"的下拉菜单里加载.如果你的"Hello,Android"项目只有一个,它将被设置为默认项目,然后你可以继续.点击"Apply"按钮,这里有个例子:
    这样就可以了,点击"Run"按钮,Android的模拟器启动.一启动你的程序就会出现,当一切OK,你可以看到:
    使用XML构建构建UI使用构建你刚刚完成的"Hello,World"的例子使用的是我们称为"可编程"的UI层,意思是你通过编写代码来组建UI层.当你开发了足够多的UI程序,你会发现一些很糟糕的现象:一些小的变化需要你做大量的代码改动.你常常
    会忘记将View连接起来,这样会导致一些错误,浪费你很多时间去调试代码.这就是Android为什么提供一个可变化的UI开发模块:基于XML的文件.最简单解释这个概念就是演示个例子.这里有个XML的文件,它能达到和你刚才完成代码同样的效果:通常Android里XML文件结构是很简单的.只是一些标记的树形集合,每个标记就是一个视图类.在这个例子中,它就是一个简单的TextView元素的树,你可以在XML文件里使用任何扩展类的名字作为你的标记,这也包括你在你的自己的代码里定义的名字.这个结构使得你能使用简单结构和语法快速的组建UI,这种模型就像网站的开发模型,你能够将UI和程序逻辑分开,单独获取或者填充数据.在这个例子里,有4个XML属性,下面是属性的大概意思:
    属性描述xmlns:android这是一个XML命名空间,告诉Android开发工具你准备使用Android命名空间里的一些通用属性.在所有AndroidXML设计文件中最外层的标记必须使用这个树形.android:layout_width这个属性定义了这个视图需要占用的屏幕宽度.在这个例子中,我们仅有的一个视图可以占用整个屏幕,那就是"fill_parent"的意思.android:layout_height这个和"layout_width"差不多,表示占用屏幕的高度.android:text这个设置文本显示内容,在这个例子里,我们使用"Hello,Android".
    这就是XML的布局,你需要把这个文件放在什么位置?放在你的工程/res/layout下就可以."res"是"resource"的简称,这个目录包含了所有应用程序需要的非代码部分.比如图片,字符串,XML文件.Eclipse插件为你创建了这些XML文件中的一个.在我们上面的范例,我们根本没有使用过它.在包的管理器里,展开目录/res/layout,编辑main.xml文件,替换上面的文本然后保存修改.在从代码目录里打开R.java文件,你可以看到他们像这样:publicfinalclassR{publicstaticfinalclassattr{};publicstaticfinalclassdrawable{publicstaticfinalinticon=0x7f020000;};publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;};publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f040000;};};R.java是文件中所有资源的索引界定值定义.你在代码中使用这个类,就像在你的项目里使用一个简洁的方法表示你的资源.在Eclipse这样的IDE工具里,这个方式对于代码自动完成功能还是非常有效的,因为这能让你快速得定位你要寻找的东西.有个重要点需要注意的是有个内部类"layout",是"main"的成员类.Eclipse插件提醒你加了一个新的XML文件,然后生成R.java文件,当你加入其他资
    源到你的工程里,你可以看到R.java在同步更改.最后要做的就是使用你最新版本的XML修改你的HelloAndroid代码去代替以前的编码.这个有例子说明重新写过的类的模型,你可以看到,代码变得非常简单:
    packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelloAndroidextendsActivity{/**Calledwhentheactivityisfirstcreated*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}当你做这些修改的时,你只需要拷贝,复制.在那个R的类里你可以使用代码自动完成功能,你会发现那确实很有帮助.现在你已经完成了这些修改,继续执行你的程序-你需要做的就是按下绿色的"Run"按钮,或者在菜单中选择Run->RunHistory>Hello,Android.你可以看到…哇哦,和之前看到的一样!这点表明两种不同的构建方式都能达到同样的结果.
    Android应用程序中几种配置文件介绍应用程序中几种配置文件介绍在Android的应用程序中,有res的文件夹,这里面包含着layout和values这两类的xml配置文件.lLayout顾名思义,就是作为布局使用的定义文件,其中包含了默认的启示项.所有的Android布局文件必须以XML头为开始:.同样,下一条定义通常(但不完全)是一个某种类的布局定义,在这个例子中是LinearLayout,也就是水平布局的意思.Android的XML名字空间应该总是定义在xml文件中组件或布局的最上级,这样标签"android:"才能用在文件的其余部分:xmlns:android="schemas.android/apk/res/android"更加详尽的布局定义,建议参考Android文档的《DesigningYourScreeninXML》部分.《》部分.lValues部分定义的是应用程序中的资源,诸如颜色配置,数组定义,风格样式等等.这里有String.xml,我们可以为应用程序添加所需的字符串资源.例如:Confirm这个资源,我们可以在定义UI的布局定义中使用到它.例如:l最后,讲一下AndroidManifest.xml文件.AndroidManifest.xml是让Android系统理解你的应用的一种方式.这个文件定义了应用的种类,在启动和设置时在哪显示它(或者是否显示),应用定义了哪些活动,服务和内容提供者,它能接收哪些Intent,等等.在新的活动能被Android系统识别前,它需要在AndroidManifest.xml文件中有它自己的活动条目.这让系统知道它的存在并且能被调用.例如:更为详尽的介绍请参见文档的《TheAndroidManifest.xml》部分
    AndroidRuntime(Android运行时运行时)运行时Android的核心类库提供Java类库所提供的绝大部分功能.每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例.为了支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过.Dalvik虚拟机执
    行的是Dalvik格式的可执行文件(.dex)——该格式经过优化,以降低内存耗用到最低.Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册并运行.在一些底层功能——比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux内核的.
    Android依赖Linux2.6版,提供核心系统服务:安全,内存管理,进程管理,网络组,驱动模型.内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次.
    用代码来设计界面比较麻烦,Android支持通过XML设计界面的语法.Android定义了大量常用元素,每个代表一个特定的Android视图子类.你可以以创建HTML文件的方法设计平面界面,一系列嵌套标签,以XML文件存放在应用的res/layout目录下
    android下,高级组件,通过xml来配置,书写,然后程序装载这个xml资源显示在屏幕上.虽然官方提供了ide得插件,可以更方便得编辑xml,但是用起来还是很不方便得,因为不能所见及所得得设计界面.好在有热心得哥们,写了更方便得工具,搭救广大水深火热得小程序员们.
    更加详尽的布局定义,建议参考Android文档的《DesigningYourScreeninXML》部分.《》部分.
    1孙管理(网学)贡献
    
    Android的UI设计原理Android的UI设计原理
    xml的形式设计的形式设计UI以xml的形式设计UI
    LinearLayout
    LinearLayout线性布局线性布局
    所谓线性布局就是指在该标签下的所有子元素会根据android:orientation的值来决定是按行还是按列逐个显示。
    Vertical列Horizontal行
    LinearLayout
    xmlns:android="schemas.android/apk/res/android"
    xmlns:android
    属性指定命名空间,顶级元素必须指定命名空间。而在该命名空间中的控件的属性如layout_width,使用时必须加上“android:”做前缀。
    layout_width指宽度,layout_height指高度。
    其可选值有“fill_parent”、“wrap_content”、具体数字(单位为px)。其中“fill_parent”代表填满其父元素。对于顶级元素来说,其父元素就是整个手机屏幕。“wrap_content”代表该元素的大小仅包裹其自身内容,而数字则代表其占相应的px。
    LinearLayout
    LinearLayout属性
    对齐方式:
    android:gravityandroid:layout_gravity
    页边距:
    android:layout_marginandroid:layout_marginTopandroid:layout_marginLeftandroid:layout_marginTopandroid:layout_marginBottom
    LinearLayout
    android:background--设置背景style样式android:layout_weight比重
    weight
    layout_weight用于给一个线性布局中的诸多视图的重要度赋值。所有的视图都有一个
    "layout_weight"值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的"layout_weight"值以及该值在当前屏幕布局的整体"layout_weight"值和在其它视图屏幕布局的"layout_weight"值中所占的比率而定。
    RelativeLayout
    android:layout_above&;android:layout_below
    设定当前view和相关的view在垂直方向上的关系,above是上相关view的上面,below是在相关view的下面,above让当前view的下面界和相关view的上边界对齐。相反below则是将当前view和相关view的上边界对齐。
    android:layout_alignWithParentIfMissing
    Ifsettotrue,theparentwillbeusedastheanchorwhentheanchorcannotbebefoundforlayout_toLeftOf,layout_toRightOf,etc.如果设为true,当找不到toLeftOf或toRightOf的view的时候,父容器将成为锚点,以父容器做为布局的依据。
    RelativeLayout
    android:layout_alignBaseline相当于水平中心线对齐。android:layout_alignBottomandroid:layout_alignLeftandroid:layout_alignRightandroid:layout_alignTop以上这些同理。android:layout_alignParentBottomandroid:layout_alignParentLeftandroid:layout_alignParentRight
    RelativeLayout
    android:layout_alignParentTopandroid:layout_centerHorizontalandroid:layout_centerInParentcandroid:layout_centerVertical以上项是指在父容器中的位置。
    TextView
    android:text设置显示文本.android:textSize--设置显示文本字体大小android:textColor--设置文本颜色android:height设置文本区域高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)android:width--设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)android:password--以小点”.”显示文本android:phoneNumber设置为电话号码的输入方式。
    TextView
    android:hint--Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。android:gravity-android:gravity--设置文本位置,如设置成“center”,文本将居中显示。android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)android:background--设定背景
    That'sAllThanks!
    1
    
  • 上一篇资讯: Android_UI设计
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号