androidui设计pdf
1. android系统中有哪三种常用的ui设计方式
Android 资源类型
1.字符串资源
>>1.普通字符串
>>2.字符串数组
复制代码
<resources>
<string-array name="planets_array">
<item>aaa</item>
<item>bbb</item>
</string-array>
</resources>
复制代码
获取方式:getResources().getStringArray(R.array.planets_array)
>>3.复数字符串资源
某些自然语言中,不同的数字在使用方法上会有所不同,比如one book,two books。当数量大于1时,会使用不同的名词或其它复数形式;
复制代码
<resources>
<plurals name="numberOfp">
<item quantity="one">one person</item>
<item quantity="other">more persons</item>
</plurals>
</resources>
复制代码
quantity属性的值除了one和other外,还可以是zero,two,few,many;
引用复数字符串:
// 引用数字为1的复数字符串
getResources().getQuantityString(R.pluarlas.numberOfp,1);
// 引用数字为其它值的复数字符串
getResources().getQuantityString(R.pluarlas.numberOfp,10,10);
>>4.占位符格式化字符串
常用的格式化字符串三种方法:
>>1.在字符串中使用引号
字符串中的值虽然可以随意指定,但是当遇到特殊符号时(双引号,单引号)就需要采取特殊的方法来处理这些符号。
如果是单引号(')可以使用转义符(\)或用双引号(")将整个字符串括起来,如果是双引号,可以在双引号前使用转义符(\)。
<resources>
<string name="str1">"This'll work"</string> This'll work
<string name="str2">This\'ll work</string> This'll work
<string name="str3">\"apple\"</string> "apple"
</resources>
>>2.用占位符格式化字符串
使用String.format(String,Object...)方法可以格式化带占位符的字符串,只需要在字符串中插入占位符,就可以使用String.format方法格式化字符串资源,format方法要求的占位符用%1,%,...,%n,其实第n个占位符与format方法的n+1个参数值对应;
<resources>
<!-- $s表示该占位符被字符串替换,$d表示该占位符被整数替换 -->
<string name="str1">hello,%1$s!You have %2$d new message</string>
</resources>
String str1 =String.format(getResources().getString(R.string.str1), "ly", 17);
>>3.使用HTML标签格式化字符串资源
字符串资源支持一些HTML标签,因此可以直接在字符串资源中使用这些HTML标签格式化字符串
字符串资源支持如下的HTML标签
<b>粗体字
<i>斜体定
<u>带下划线的字
有时需要同时使用HTML标签和占位符格式化字符串,如果使用String.format方法格式化字符串,会忽略字符串中的所有HTML标签。为了使format方法可以格式化带
HTML标签的确字符,需要使用Html.formHTML方法处理字符串;
<resources>
<string name="hello_world">Welcome to <b>android</b></string>
<string name="str2">Hello,%1$s! You have <b> %2d new messages </b></string> <!--同时包含占位符和html标签的字符串-->
</resources>
由于需要使用Html.formHTML方法处理字符串,因此HTML标签中的 "<" 需要使用 "<" 表示 ">" 并不需要处理
获取字符串:
String text = String.format(getResources().getString(R.string.str2), "ly", 10);
CharSequence styledText = Html.fromHtml(text);
// 如果format的某个参数包含HTML的特殊字符,如"<","&",可以使用如下方式读取字符串的值;
String escapedUsername = TextUtils.htmlEncode("");
String text1 = String.format(getResources().getString(R.string.str2), "ly", 20);
2.Layout资源
1、如果根节点是View,除了<requestFocus>标签外,不能添加任何子标签,<requestFocus>可能被添加到布局文件的任何View中,表示该标签对应的控件在显示时处于焦点状态,整个布局文件只能有一个<requestFocus>标签
2、根节点是ViewGroup,常用的布局都是ViewGroup的子类
3、重用布局文件
如果想重用某个布局文件,可以使用<include>标签
<include layout="@layout/xx_layout" />
如果想让一个布局文件被另一个布局文件引用(使用<include>标签),可以使用<merge>作为被引用布局文件的根节点,由于<merge>并不会生成任何标签(在大量引用布局文件时不至于生成大量无用的标签),但是xml文件必须要有一个根节点,因此<merge>所起的作用就是作为xml文件的根节点,以使xml文件在编译时不至于出错,可以把<merge>当成<FrameLayout>使用;
3.图像资源
在图像资源中可以存储图像文件,还可以使用xml格式的图像资源来控件图像的状态和行为;
>>1.普通图像资源
Drawable da = getResources().getDrawable(R.drawable.xxx);
>>2.xml图像资源
xml图像资源其实就是在drawable目录中指定的xml文件,此种方式可以额外指定图像的某些属性,如图像拉动、排列方式;
<bitmap xmlns:android=""
android:src="@drawable/ic_launcher"
android:tileMode="repeat" >
</bitmap>
>>3.Nine-Patch图像资源
Nine-Patch图像资源文件必须以9.png作为文件扩展名,如abc.9.png
该图像资源的主要作用是:防止图像的某一部分被拉伸;确定将图像作为背景图的控件中内容显示的位置;
Android SDK本身提供了一个Draw 9-patch的工具,启动<sdk目录>\tools\draw9patch.bat命令启动该工具;
可以通过此工具在png图的四周绘制1个像素粗的直线,上边缘和左边缘的直线分别表示图像在水平和垂直方向可位值的范围。如果水平或垂直方向的某个区域不需要拉伸,则可不绘制相应的直线;右边缘和下边缘的直线分别表示图像所在控件中内容的显示范围,内容只在右边缘和下边缘绘制直线的区域显示,表示内容显示范围和拉伸范围的两给直线有一个重要区别就是表示内容显示范围的直线中间不能断开,而表示拉伸范围的直线中间可以断开;
Nine-Patch图像资源与普通图像资源引用方法相同,在引用时只写文件名,活力.9.png;
>>4.XML Nine-Patch图像资源
Nine-Patch图像资源也有与其对应的xml图像资源,使用<nine-patch>标签来引用Nine-Patch格式的图像,有一个设置抖动的android:dither属性;
>>5.图层资源
图层资源类似于<FrameLayout>不同的是<FrameLayout>标签中可以包含任意的控件,而图层资源每一层都只有是图像,定义图层资源必须使用<layer-list>作为资源文件的根节点,<layer-list>标签中包含多个<item>标签,每一个标签表示一个图像,最后一个<item>标签显示在最顶层;
默认情况下,图像会尽量充满显示图像的范围,图像可能会有拉伸,为了避免图像拉伸,可以在<item>标签中使用<bitmap>标签引用图像;
复制代码
<layer-list xmlns:android="" >
<item
android:bottom="10dip" 底端偏移的像素
android:left="10dip" 左侧偏移的像素
android:right="10dip" ...
android:top="10dip"> ...
<bitmap
android:gravity="center"
android:src="@drawable/hell" />
</item>
</layer-list>
复制代码
某些情况下,可以使用图层来代替<FrameLayout>
>>6.图像状态资源,处理控件不同状态下的显示状态
复制代码
<selector xmlns:android="">
<item android:drawable="@drawable/bm" android:state_focused="true"></item>
<item android:drawable="@drawable/bm" android:state_pressed="true"></item>
<item android:drawable="@drawable/bm"></item>
</selector>
// android:state_focused/pressed设置为true表示当前item的drawable属性为获取焦点和按下时的drawable样式
复制代码
>>7.图像级别(Level)资源
图像资源状态只能指定几种有限的状态,可以通过图像级别指定更多的状态;图像级别是一个整数的区间,可以通过ImageView.setImageLevel或Drawable.setLevel方法切换不同状态的图像;图像级别资源是xml文件,必须以<level-list>为根节点,每一个item表示一个级别区间,下面是一个xml文件;通过ImageView.setImageLevel(level),根据level所在的区间设定显示的图像资源,如果level不在任一区间内则清空ImageView当前图像;
<level-list xmlns:android="">
<item android:maxLevel="2" android:minLevel="0" android:drawable="@drawable/hell" />
<item android:maxLevel="4" android:minLevel="3" android:drawable="@drawable/hell" />
</level-list>
>>8.淡入淡出(Cross-fade)资源
也是切换两个图像(不支持多于两个图像的切换),并且使这两个图像以淡入淡出效果进行切换,如电灯在开关时逐渐变亮或逐渐变暗;
<transition xmlns:android="" >
<item android:drawable="@drawable/hell"/>
<item android:drawable="@drawable/hell"/>
</transition>
TransitionDrawable da = ...;
// 从第一张图片切换到第二张图片,时间效果为1秒
da.startTransition(1000);
// 从第二张图片切换到第一张图片,时间效果为1秒
da.reverseTransition(1000);
>>9.嵌入(insert)图像资源
使用场景:要显示的图像要求要小于装载图像的View(图小于View区域),也是通过xml资源定义,只有一个节点inset。
<inset xmlns:android=""
android:drawable="@drawable/hell"
android:insetLeft="10dip" > <!--图像距离左边的距离,延伸-->上/下/右的距离-->
</inset>
>>10.剪切(Clip)图像资源,使用剪切图像资源可以只显示图像的一部分,如可以通过此来制作进度条;
<clip xmlns:android=""
android:clipOrientation="horizontal" // 指定截取的方向
android:drawable="@drawable/hell" // 指定要截取的图像
android:gravity="left" > // 指定截取的方式,在此为从左侧开始截取
</clip>
ClipDrawable cd = ...;
cd.setLevel(1000);
上面ClipDrawable.setLevel(level)设置截取的图像宽度,ClipDrawable预设了最大值10000(表示不进行截取),最小值为0(表示不显示);
>>11. 比例(Scale)图像资源
<scale xmlns:android=""
android:drawable="@drawable/hell"
android:scaleGravity="center" // 设置图像显示的位置
android:scaleHeight="70%" // 设置图像显示的高度
android:scaleWidth="80%" > // 设置图像显示的宽度
</scale>
>>12.形状资源
复制代码
<shape xmlns:android=""
android:shape="rectangle" > shape可以指定就矩形,oval(椭圆),line(直线),ring(圆)
<corners> 定义圆角
</corners>
<gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" > 定义颜色渐变,从左下角到或上角
</gradient>
<padding> 定义控件内容到边框的距离
</padding>
<stroke> 定义边线
</stroke>
<solid> 定义填充
</solid>
<size> 定义大小
</size>
</shape>
复制代码
13.菜单资源
菜单不仅可以在onCreateContextMenu或onCreateOptionsMenu方法中通过代码创建,还可以在res/menu目录中建立相应的菜单资源文件,并在上面两个方法中加载菜单资源;
菜单资源文件必须以<menu>标签作为根节点,每一个菜单项用一个<item>表示,如果要定义子菜单,可以在<item>标签中包含<menu>标签;如果想将多个菜单项划为一组,可以使用<group>包含多个<item>标签;
复制代码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
复制代码
查看MenuInflater.inflate(int,Menu)
复制代码
/**
* Inflate a menu hierarchy from the specified XML resource.
*
* @param menuRes Resource ID for an XML layout resource to load (e.g., <code>R.menu.main_activity</code>)
* @param menu The Menu to inflate into. The items and submenus will be added to this Menu.
*/
public void inflate(int menuRes, Menu menu) {
XmlResourceParser parser = null;
try {
parser = mContext.getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);
parseMenu(parser, attrs, menu);
} catch ...finally {
if (parser != null) parser.close();
}
}
复制代码
14.样式与主题(style/theme)
>>1.样式style
android中样式和css中样式作用是一样的,都是用于为界面元素定义显示风格,它是一个包含一个或者多个控件属性的集合。
定义样式需要在res/values/styles.xml中进行定义,如下是一个样式的定义:
<style name="textViewStyle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="textViewStyle1" parent="textViewStyle"></style><!-- 此样式继承自textViewStyle -->
<style name="textViewStyle.Livingstone"><!-- 样式继承的另一种写法,但不可用此写法继承Android自带的定义样式? -->
<item name="android:textColor">#00FF00</item>
</style>
所有定义的样式都会在R文件中自动生成一个资源ID,加一个点表示样式继承会生成上图所示的资源id;
样式的引用:
<TextView
style="@style/textViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" />
>>2.主题Theme
主题应用于整个应用或者activity,样式应用于具体的控件上。主题的应用与样式定义一样,不同的是主题还可以设置窗口的显示风格;主题的引用需要在清单文件中进行引用,如引用到整个应用之上就需要在Application节点中进行配置引用,而引用到单个Activity只需要在此Activity中进行配置引用;
复制代码
<style name="Livingstonetheme"><!--此定义是一个无Title的主题-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 问号表示引用此主题中android:windowNoTitle属性的值 -->
<item name="android:textSize">18sp</item>
</style>
复制代码
android系统定义了一些属性,如android:theme="@android:style/Theme.Dialog",该主题可以让Activity看起来像一个对话框,更多主题可以在文档reference->android->R.style中查看。当主题里面的样式属性值与样式里面的属性值发生冲突的时候会显示样式里面的值;
15.其它资源
在资源文件中还可以包括尺寸(dimen)、整数(integer)、布尔(bool) 、整形数组资源(integer-array)、资源数组(array)、颜色(color)
TypedArray ta = getResources().obtainTypedArray(int id); // 获取数组资源,包括integer-array、array
Final总结:
除了res/values目录中的资源名,其它目录的资源都会以文件名在R类的相应子类中生成变量;而res/values中的资源会以name属性值为变量名在R类的相应子类中生成变量;
2. android应用ui设计模式 怎么样
你好。
根据你的描述:
android应用ui设计模式是一本书,本书介绍了58种必不可少的交互设计模式,帮助你处理Android应用程序设计最具挑战性的方方面面,以及同样重要的12种反模式,描述了在追求客户完善、愉悦和享受的过程中的常见错误,非常适合各层次的Android应用开发者、UI设计师阅读、参考。
http://www.uisdc.com/android-ui-mode
3. 如何设置AndroidUI设计字体的大小规范
Android UI设计字体,由于android厂商和设备之多,目前没含陵宽有特定的标准,但根据设备的尺寸,有一个建议的原则,如下:
sp和dp一样,是android开发里特有的单位,设计师在做UI设计的时候通常最初是建立320*480这个尺寸的画布开始的,这个尺寸的画布在android分辨率的分类中称为mdpi,在这个尺寸下,ps里的1px就等于android中的1dp,同样,这个时候1点的字就等于android中1sp。
UI即User Interface(用户界面)的简称。UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还谈亮要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。由于UI设计涉及学科交广,作为UI设计的主体,设计公司的专业程度及规模是汪橡决定作品质量的重要条件,大部分设计公司无法同时满足UI设计对各方面人才的要求,以至于出产的作品大多存在各种缺陷
4. Android UI设计的基本元素有哪些
移动端的App界面,不论是iOS还是Android ,一般都由四个元素组成,分别是:状态栏(status bar)、导航栏(navigation)、主菜单栏(submenu)、内容区域(content)。
状态栏:主要用于显示信号、运营商、电量等手机状态的区域;
导航栏:主要显示当前界面的名称,包含相应的功能或者页面间的跳转按钮;
主菜单栏:类似于页面的主菜单,提供整个应用的分类内容的快速跳转;
内容区域:展示应用提供的相应内容;
需要注意的一点就是,由于Android在4.0之后移除了实体键而使用屏幕下方的虚拟键,所以,Android将iOS中的主菜单从下方移动到了上方,从而避免误操作虚拟键。
说到这里,就不得不说,虽然android和iOS都是移动端的操作系统,但是他们在UI设计还是存在很大的差异性。这是为什么呢? 其实这基本上都是因为iOS的闭源导致的,由于它的商业化,导致很多设计被申请了专利,Android在很多地方都必须有所不同,说的最多的就是iOS的弹性滚动,其实Android的ScrollView要实现这样的效果,只需要修改一个参数的值即可,但是由于这个效果iOS申请的专利,所以Android就无法使用了。
5. android ui设计
下载安卓界面工具,打开界面工具,熟悉界面功能。
认真练习体会android的八种布局方式,其中absolutelayout,framelayout,Linearlayout,relativelayout,tablelayout.可以直接拖曳,布局方式
然后在布局基础上放控件,widgets有点击类,编辑类,日期时间等。properties。是具体微调。
可以进行button,autocomplete等的设计。包括画廊,日期时间,选项卡的设计。
最后一步,进行文件xml的保存,保存后的文件可以直接应用于android的UI设计。功能的实现主要依靠于code的控制。至此,android界面的简单设计就完成了。
6. 《移动应用UI设计模式》pdf下载在线阅读,求百度网盘云资源
《移动应用UI设计模式》([美] Theresa Neil)电子书网盘下载免费在线阅读
链接:https://pan..com/s/1gc4vMze_QKDoPyID6LGiTQ
书名:移动应用UI设计模式
作者:[美] Theresa Neil
译者:王军锋
豆瓣评分:7.2
出版社:人民邮电出版社
出版年份:2013-1-1
页数:206
内容简介:
内容简介:
当你迫于压力,要制作出设计精良、易于使用的移动应用时,根本就没时间进行完全的创新。这本简要的手册提供了70多种移动应用设计模式作为参考,包括了从当前iOS、Android、BlackBerry、WebOS、Windows Mobile以及Symbian平台中提取的超过400张的应用截图。
用户体验设计大师Theresa Neil将向你介绍包括反模式在内的10种不同类型的设计模式。无论你正在设计一款简单的iPhone应用,还是开发适用于当前市场上所有流行移动操作系统的应用,这些设计模式都能助你一臂之力。
本书包括以下设计模式。
导航:主要导航和次要导航模式
表单:改变全行业不良的表单设计习惯
表格和列表:只显示最重要的信息
搜索、分类和过滤:让这些功能易于使用
工具:营造直接交互的体验
图表:借鉴基本图表的经典设计理念
视觉吸引:吸引用户并促使其发现产品功能
控制与反馈:帮助用户执行操作并及时提供反馈
帮助:把小型设计理念应用到帮助页面的设计中去
作者简介:
Theresa Neil 是德克萨斯州奥斯汀市的一名用户体验咨询师。她组建了一个用户体验设计小组,其中的设计师和开发人员都具有十分丰富的从业经验。她的设计小组与客户紧密协同,致力于创建能令人产生愉悦、提升工作效率和自信心的产品。她最新的项目是为餐馆设计一款桌面应用程序,让客户能在自己的餐桌前点餐。其他更多项目,请浏览她的网站www.theresaneil.com,或访问她的Twitter 账户@theresaneil。
7. 《好设计不简单ⅡUI设计师必须了解的那些事》pdf下载在线阅读全文,求百度网盘云资源
《好设计不简单Ⅱ》([日] 古贺直树)粗粗电子书网盘滑竖下载免费在线阅读
链接: https://pan..com/s/1Cj61tnRTmTVOz1GrBkO2Ew
书名:好设计不简单Ⅱ
作者:[日] 古贺直树
译者:张君艳
豆瓣评分:6.1
出版社:人民邮电出版社
出版年份:2014-8
页数:192
内容简介:
本书作者根据多年的从业经验,剖析用户的心理,从饮水机、门把手等日常生活中的常见物品出发,针对文字、图标、形状、颜色、动态效果等方面,就如何制作出友好的界面、如何通过UI设计避免人为失误等问题,给出了大量简单、易行的建议。书中列举的大量应用实例使枯燥的设计原理变得平易近人。
本书适合各行业的UI设计人员,特别是应用程序开发、web设计的技术人员阅读。
作者简介:
古贺直树
东京理科大学应用数学系毕业。1990年投身教育软件开发行业,创立FUNTECH公司,任董事长。从MS-DOS时代起就致力于图形界面设计的研究,曾制作了“游戏工匠”“童话工匠”等多款教娱软件。现主要从事业务系统顾问和设计工作。着有《系统学习计算机语言》(合着,日经BP社)等。
8. 《Android应用开发攻略》pdf下载在线阅读,求百度网盘云资源
《Android应用开发攻略》(Ian F. Darwin)电子书网盘下载免费在线阅读
资源链接:
链接:
书名:Android应用开发攻略
作者:Ian F. Darwin
译者:姚军
出版社:机械工业出版社华章公司
出版年份:2013-3-31
页数:648
内容简介:在200多个经过测试的攻略帮助下,你可以投入构建Android应用的工作中。通过本书,你能找到有关用户界面、多点触摸手势、位置感知、Web服务以及电话、相机、加速计等设备功能的解决方案。你还能够得到为Android Market包装应用程序的有用步骤。
本书适合于熟悉Java、Android基础知识和Java SE API的开发人员,其中的攻略由30多位Android社区的开发人员贡献。每个攻略都提供了清晰的解决方案和可以马上用于项目中的样例代码。在大量的主题中,本书能够帮助你:
运用指导原则设计成功的Android应用程序
使用UI控件、高效的布局和图形元素
学习如何在应用程序中利用Android的丰富特性
存储和读取文件、SD卡和嵌入式数据库中的应用程序数据
访问REST风格的Web服务、RSS/Atom 源以及来自网站的信息
创建位置感知服务,寻找位置和地标、并在Google Maps和OpenStreetMap上加以标注
测试单独组件和整个应用程序并排除故障
作者简介:Ian F.Darwin是一位软件开发人员、顾问和教师,有着30余年的计算机从业经验。他是《Checking C Programs with Lint》、《Java Cookbook》(均由O'Reilly出版)的作者,还撰写了100多篇文章和教程,内容涵盖了UNIX、C、Java、Mac、Python、Android和Web等。
9. Android应用的UI设计图要做多大分辨率
Android应用的UI设计图要做的分辨率为:1920*1080;
一般来说安卓常见的分辨率为:320*480;480*800;540*960;720*1280;1920*1080;
但对于UI设计来说,尽可能保持设计的分辨率达到技术开发的标准,一般都以720*1280或1920*1080为主,但为了避免技术协调的冲突,则以1920*1080为主,不会出现大的错误。
10. Android UI设计字体大小规范
Android UI设计字体,由于android厂商和设备之多,目前没有特定的标准,但根据设备的尺寸,有一个建议的原则,如下:
sp和dp一样,是android开发里特有的单位,设计师在做UI设计的时候通常最初是建立320*480这个尺寸的画布开始的,这个尺寸的画布在android分辨率的分类中称为mdpi,在这个尺寸下,ps里的1px就等于android中的1dp,同样,这个时候1点的字就等于android中1sp。