用户界面USERINTERFACE用户界面说明布局Layout创建菜单Menus创建对话Dialogs处理用户UI事件用户提示确定风格定制组件数据与界面绑定模拟器屏幕HVGA-L:480x320横屏HVGA-P:320x480竖屏(默认)QVGA-L:320x240横屏QVGA-P:240x320竖屏WVGA-L:800x480横屏UI用户界面设计:ICON设计应用程序需要各种各样的图标尺寸和定位Launchericons要有多样化的形状和样式,但又要形成统一的视觉风格,其尺寸和定位也用统一:•红色边框为图标尺寸•蓝色边框是图形尺寸,比图标尺寸稍小,图形之外的空间用于显示阴影和特殊效果。•橙色边框是另外一种图形尺寸。两种类型的图形尺寸可以达到统一的视觉权重。ICON的风格符合当下的流行趋势,避免过度使用隐喻。高度简化和夸张,小尺寸图标也能易于识别,不宜太复杂。尝试抓住程序的主要特征,比如音像作为音乐的icon。使用自然的轮廓和形状,看起来几何化和有机化,不失真实感。采用前视角,几乎没有透视,光源在顶部。不光滑但富有质感。UI用户界面设计:MENU设计选项菜单OptionsMenu:活动的主菜单。通过按下设备菜单键来显示它。选项菜单包含两组菜单项:•图标菜单IconMenu•这个是当用户按下菜单键时最初出现屏幕下方的item集合。它支持最多6个菜单项。只有这些菜单支持图标而且这些菜单并不支持checkboxes或者radiobuttons。•扩展菜单ExpandedMenu•这是通过按“更多”菜单显现出来的一个竖向的项目列表。它仅当图标菜单过多时存在而且是由6个以及其它选项菜单组成。上下文菜单ContextMenu:浮动菜单列表,通常在你长时间按在一个视图上时出现(比如一个列表项)子菜单Submenu:浮动菜单列表,通过在选项菜单或上下文菜单选择菜单项显露出来。不支持嵌套子菜单。ANDROIDUI布局ViewGroup通过各种Layout,控制所属View的显示位置。ViewGroup(Layout)ViewViewViewViewViewViewGroup(Layout)LAYOUTAbsoluteLayoutFrameLayoutGridViewLinearLayoutListLayoutRadioGroupTableLayout………布局线性布局LinearLayout•垂直:android:orientation=vertical“•水平:android:orientation=horizontalLinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentFRAMELAYOUT在屏幕上故意保留的空白空间,可以填充一个单独的对象。所有子元素都钉到屏幕的左上角不能为子元素指定位置TABLELAYOUT子元素放入到行与列中不显示行、列或是单元格边界线单元格不能横跨行,如HTML中一样ABSOLUTELAYOUT指明子元素确切的屏幕(X,Y)坐标(0,0)是左上角,下移或右移时,坐标值增加允许元素重叠(但是不推荐)注意:•一般建议不使用AbsoluteLayout除非你有很好的理由来使用它•因为它相当严格并且在不同的设备显示中不能很好地工作RELATIVELAYOUT让子元素指定它们相对于其他元素的位置(通过ID来指定)或相对于父布局对象,跟AbsoluteLayout这个绝对坐标布局是个相反。在RelativeLayout布局里的控件包含丰富的排列属性:•Layoutabove:控件在指定控件的上方•Layoutbelow:控件在指定控件的下方•Layouttoleftof。。。。使用RelativeLayout布局的时候,尽少程序运行时做控件布局的更改,因为RelativeLayout布局里面的属性之间,很容易冲突。COLOR颜色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处理用户输入:为VIEW设监听器View.OnClickListener•OnClick()View.OnLongClickListener•OnLongClick()View.OnFocusChangeListener•OnFocusChange()View.OnKeyListener•OnKey()View.OnTouchListener•OnTouch()View.OnCreateMenuListener•OnCreateContextMenu()为View设监听器以处理某一类型事件事件监听响应例Button:Buttonbtn=(Button)findViewById(R.id.Button01);.........btn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){…………}});BUTTONMain.xmlButton事件响应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!);}});ANDROID菜单android提供了三种菜单类型,分别为optionsmenu,contextmenu,submenu。optionsmenu(主菜单)就是通过按home键来显示,contextmenu(右键菜单)在view上按上2s后显示两种menu都有可以加入子菜单(submenu),子菜单不能嵌套子菜单。android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。OPTIONMENU1OptionMenu(主菜单)•optionsmenu最多只能在屏幕最下面显示6个菜单选项,称为iconmenu•iconmenu不能有checkable选项。•多于6的菜单项会以moreiconmenu来调出,称为expandedmenu。•optionsmenu通过activity的onCreateOptionsMenu来生成,•这个函数只会在menu第一次生成时调用。•任何想改变optionsmenu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。•onOptionsItemSelected用来处理选中的菜单项。OPTIONMENU2menuxmlns:android=:id=@+id/saveandroid:title=@string/save/itemandroid:id=@+id/cancelandroid:title=@string/cancel//menuCONTEXTMENU菜单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添加MENU菜单Menu菜单publicbooleanonCreateOptionsMenu(Menumenu){//TODOAuto-generatedmethodstubbooleanresult=super.onCreateOptionsMenu(menu);menu.add(0,INSERT_ID_Play,0,R.string.menu_toPlay);menu.add(0,INSERT_ID_Stop,0,R.string.menu_toStop);returnresult;}//创建菜单