Android教程05 用户界面

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

王新张睿复旦大学计算机学院说明布局Layout创建菜单Menus创建对话Dialogs处理用户UI事件用户提示确定风格定制组件数据与界面绑定HVGA-L:480x320横屏HVGA-P:320x480竖屏(默认)QVGA-L:320x240横屏QVGA-P:240x320竖屏WVGA-L:800x480横屏应用程序需要各种各样的图标尺寸和定位Launchericons要有多样化的形状和样式,但又要形成统一的视觉风格,其尺寸和定位也用统一:红色边框为图标尺寸蓝色边框是图形尺寸,比图标尺寸稍小,图形之外的空间用于显示阴影和特殊效果。橙色边框是另外一种图形尺寸。两种类型的图形尺寸可以达到统一的视觉权重。符合当下的流行趋势,避免过度使用隐喻。高度简化和夸张,小尺寸图标也能易于识别,不宜太复杂。尝试抓住程序的主要特征,比如音像作为音乐的icon。使用自然的轮廓和形状,看起来几何化和有机化,不失真实感。采用前视角,几乎没有透视,光源在顶部。不光滑但富有质感。Widget是Android1.5的一个新特性,允许程序显示一些常用而又重要的信息在用户的桌面主屏上标准的Android系统映像包含了一些示例widgets包括指针时钟、音乐播放器和其他工具如Google搜索栏。Widget即是可由用户自己编写的功能控件。典型的AndroidWidget有三个主要组件:边框框架图形控件以及其他元素注意widgets的开状尺寸以便在主屏上显示ActivityandTaskDesignActivitiesarethebasic,independentbuildingblocksofapplications.Asyoudesignyourapplication'sUIandfeatureset,youarefreetore-useactivitiesfromotherapplicationsasiftheywereyours,toenrichandextendyourapplication.Theseguidelinesdescribehowactivitieswork,illustratesthemwithexamples,anddescribesimportantunderlyingprinciplesandmechanisms,suchasmultitasking,activityreuse,intents,theactivitystack,andtasks.Itcoversthisallfromahigh-leveldesignperspective.选项菜单OptionsMenu:活动的主菜单。通过按下设备菜单键来显示它。选项菜单包含两组菜单项:图标菜单IconMenu这个是当用户按下菜单键时最初出现屏幕下方的item集合。它支持最多6个菜单项。只有这些菜单支持图标而且这些菜单并不支持checkboxes或者radiobuttons。扩展菜单ExpandedMenu这是通过按“更多”菜单显现出来的一个竖向的项目列表。它仅当图标菜单过多时存在而且是由6个以及其它选项菜单组成。上下文菜单ContextMenu:浮动菜单列表,通常在你长时间按在一个视图上时出现(比如一个列表项)子菜单Submenu:浮动菜单列表,通过在选项菜单或上下文菜单选择菜单项显露出来。不支持嵌套子菜单。ViewGroup通过各种Layout,控制所属View的显示位置。ViewGroup(Layout)ViewViewViewViewViewViewGroup(Layout)AbsoluteLayoutFrameLayoutGridViewLinearLayoutListLayoutRadioGroupTableLayout………增加ImageView与原先的TextView,按垂直线性布局。线性布局LinearLayout线性布局LinearLayout垂直:android:orientation=vertical“水平:android:orientation=horizontalLinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parent在屏幕上故意保留的空白空间,可以填充一个单独的对象。所有子元素都钉到屏幕的左上角不能为子元素指定位置子元素放入到行与列中不显示行、列或是单元格边界线单元格不能横跨行,如HTML中一样指明子元素确切的屏幕(X,Y)坐标(0,0)是左上角,下移或右移时,坐标值增加允许元素重叠(但是不推荐)注意:一般建议不使用AbsoluteLayout除非你有很好的理由来使用它因为它相当严格并且在不同的设备显示中不能很好地工作让子元素指定它们相对于其他元素的位置(通过ID来指定)或相对于父布局对象,跟AbsoluteLayout这个绝对坐标布局是个相反。在RelativeLayout布局里的控件包含丰富的排列属性:Layoutabove:控件在指定控件的上方Layoutbelow:控件在指定控件的下方Layouttoleftof。。。。使用RelativeLayout布局的时候,尽少程序运行时做控件布局的更改,因为RelativeLayout布局里面的属性之间,很容易冲突。android.graphics.Color包含颜色值Color.BLACKColor.BLUEColor.CYANColor.DKGRAYColor.GRAYColor.GREENColor.LTGRAYColor.MAGENTAColor.REDColor.TRANSPARENTColor.WHITEColor.YELLOWandroid.graphics.Typeface实践Typeface.create(Typefacefamily,intstyle)创建一个混合型新的字体:有4*5中搭配Typeface.setTypeface(Typefacetf,intstyle)设置一个混合型字体:有4*5中搭配Typeface.setTypeface(Typefacetf)设置一个只有Typeface风格的字体:有五种形式字体(4种)BOLD、BOLD_ITALIC、ITALIC、NORMAL粗体、粗斜体、斜体、普通字体风格(5种)DEFAULT、DEFAULT_BOLD、MONOSPACE、SANS_SERIF、SERIF默认字体、默认粗体、单间隔字体、无衬线字体、衬线字体android提供了三种菜单类型,分别为optionsmenu,contextmenu,submenu。optionsmenu(主菜单)就是通过按home键来显示,contextmenu(右键菜单)在view上按上2s后显示两种menu都有可以加入子菜单,子菜单不能种不能嵌套子菜单。android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。OptionMenu(主菜单)optionsmenu最多只能在屏幕最下面显示6个菜单选项,称为iconmenuiconmenu不能有checkable选项。多于6的菜单项会以moreiconmenu来调出,称为expandedmenu。optionsmenu通过activity的onCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。任何想改变optionsmenu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected用来处理选中的菜单项。menuxmlns:android=:id=@+id/saveandroid:title=@string/save/itemandroid:id=@+id/cancelandroid:title=@string/cancel//menuContextMenu(右键菜单)contextmenu是跟某个具体的view绑定在一起,在activity中用registerForContextMenu来为某个view注册contextmenu。contextmenu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected用来处理选中的菜单项。menuxmlns:android=:id=@+id/saveandroid:title=@string/save/itemandroid:id=@+id/cancelandroid:title=@string/cancel//menuSubmenu(子菜单)一个浮动菜单列表,通过在选项菜单或上下文菜单选择菜单项显露出来。不支持嵌套子菜单。Main.xmlButton事件响应Buttonandroid:id=@+id/Button01android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/btn_name/show=(TextView)findViewById(R.id.TextView01);press=(Button)findViewById(R.id.Button01);press.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){show.setText(Hi,GoogleAndroid!);}});①前台进程(ActiveProcess):前台Activity、包含正在运行的广播接收器、正在运行的服务②可视进程(VisibleProcess):包含一个可视化的Activity③服务进程(StartedServiceProcess):包含一个被开启的服务(处理服务,不是直接可视,例如媒体播放器,网络上传、下载)④后台进程(BackgroundProcess):包含一个不可视的Activity(可以在任意时刻杀死该进程来回收内存)⑤空进程(EmptyProcess):没有持有任何应用程序组件①active:当一个Activity在屏幕的最上层时(对堆栈的最顶端),它就是属于active或者running的状态②paused:如果一个Activity失去焦点(focus)但还看得到它的画面(比如:一个新的Activity画面并不是全屏幕或者它是一个半透明的情况),那失去焦点的Activity则处在paused的状态。像这个失去焦点的Activity它还是完全活着的,并没有消失。(活着的意思是指,Activity自己本身所有的状态及数据都还是存在的,也跟窗口管理程序windowmanager保持联系着),像这种paused的Activity,会在一种情况下消失,那就是当系统的内存不够用之时,系统会自动判断,将不重要的Activity移除。③stop:如果一个Activity被其它的Activity完全的遮盖住时,它

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功