步步为营_Android开发课[36]_用户界面之屏幕适配
来源:互联网 发布:传奇世界仗剑天涯源码 编辑:程序博客网 时间:2024/05/17 00:17
Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305
- 主题:用户界面之屏幕适配
-
1.布局适配:
1。尽量使用match_parent 而不是fill_parent 。
2。能够使用权重的地方尽量使用权重(android:layout_weight)
3。如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。
2.图片适配:
方法一:
在用eclipse开发环境生成一个android项目后,系统会给我们生成drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi,drawable-xxhdpi,对于同一张图片资源,我们分别创建这五个版本来适应不同的屏幕。假设你想一张图片
那么程序运行时怎么知道自己到底是使用哪个drawable目录下 程序会使用适应当前屏幕的目录下的图片资源。drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi,drawable-xxhdpi,这几个目录对应
320*480、480*800、720*1280、1080*1800当然手机屏幕的分辨率也是多种多样,例如有的是
300,有的是220,这个系统会选择最接近的目录下的资源
方法二:
方法二中需要为每个drawable目录都生成对应的图片版本,如果图片较多的话,生成不同版本的图片倒是小事更主要的缺点是会增大应用的大小,那么可不可以只在一个目录下存放图片,例如只在drawable-mdpi目录下存放图片呢。答案是可以的,假设我们在drawable-hdpi(对应的ppi为160ppi)目录下存放了一个100X100的图片,那么当图片需要在320ppi的android设备上进行显示时,android系统会将自动将图片进行处理生成一个200X200的图片显示到设备上,那么他们占用的空间大小分别为 100/160 = 3/5 inch 200/320 = 3/5 inch 可以看出他们占用的长和宽都是一样的这种自动缩放的优点是只需要一张图片就能适应各种ppi类型的屏幕。缺点是当对100X100的图片进行变换成200X200的图片时肯能会造成图片的不清晰,所以说如何进行选择也是一个衡量。
综上:
建议将比较重要的图片资源提供多个版本(当android设备和自己的ppi相对应的drawable下找到想要的资源时,就不会再到其他目录需找资源)。不是很重要的图片资源存储一个版本,让系统根据自己的ppi自己对图片进行适当的缩放显示。
为什么选择dp:
在布局文件中使用 dp作为单位而不是使用px。 dp是一个与屏幕ppi无关的参数,同时也是一个事实上并不存在的虚拟单位。显示时会根据具体屏幕的ppi进行像素的映射。
3.字体适配:
高版本SDK,创建工程时,res文件夹中自动带有有values、values-v11、values-v14、values-w820dp这几种文件夹,根据你手机屏幕的情况做不同的在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用响应的文件夹。
Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305
- 步步为营_Android开发课[36]_用户界面之屏幕适配
- 步步为营_Android开发课[13]_用户界面之view(视图)
- 步步为营_Android开发课[14]_用户界面之Layout(布局)
- 步步为营_Android开发课[17]_用户界面之Button(按钮)
- 步步为营_Android开发课[18]_用户界面之Dialog(对话框)
- 步步为营_Android开发课[20]_用户界面之Menu(菜单)
- 步步为营_Android开发课[23]_用户界面之ProgressBar(进度条)
- 步步为营_Android开发课[34]_用户界面之Fragment
- 步步为营_Android开发课[15]_用户界面之TextView(文本视图)
- 步步为营_Android开发课[16]_用户界面之EditText(编辑视图)
- 步步为营_Android开发课[19]_用户界面之ListView(列表视图)
- 步步为营_Android开发课[21]_用户界面之Notification(通知栏)
- 步步为营_Android开发课[22]_用户界面之GridView(网格视图)
- 步步为营_Android开发课[24]_用户界面之Checkbox(复选框)
- 步步为营_Android开发课[25]_用户界面之ScrollView(滚动视图)
- 步步为营_Android开发课[26]_用户界面之PopupWindow(弹出窗口)
- 步步为营_Android开发课[27]_用户界面之RatingBar(评分栏)
- 步步为营_Android开发课[28]_用户界面之Spinner(下拉列表)
- 5-14 数据结构啊poi T.三个数组的故事
- 小组成绩排名
- 第一次使用GIT,创建仓库并提交项目代码
- java学习记录(for循环打印)
- hdu1153 Magic Bitstrings
- 步步为营_Android开发课[36]_用户界面之屏幕适配
- 积跬步至千里——算法强化训练(4)位操作的几个实例
- FZU 1894 志愿者选拔
- 程序员身体自测健康5大标准
- poj 3041(最小点覆盖)
- 第十一周项目三 点类派生直线类
- a标签的href传递信息
- 软件概要设计
- POJ - 2456 Aggressive cows 二分