第一天写博客,就写写android的屏幕适配吧
2016-04-27 09:09
330 查看
android屏幕像素尺寸多种多样,可以按一下类别分类,nodpi,ldpi.mdpi.hdpi.xhdpi.xxhdpi.
实际使用时,不同的图片资源,应分别放到不同的资源文件夹中,以达到不同ppi手机的适配效果,近几日,本人就遇到一个非常影响性能的问题,
一个很简单的页面,加载了一个44k大小300*200像素的图片背景,一个1000*1000像素大小400k的头像,下边一个listview,结果listview相应特别慢,
滑动时很卡,单独拿出来listview加载,就很顺畅,那肯定就是布局的问题,于是查看图片资源,发现所有图片全部放在mdpi内,本人是用nexus6测试,nexus6
像素密度是493ppi,于是mdpi的文件就被放大到3.5倍,1000像素的文件占用的内存相当可怕,于是把图片放置到xxhdpi内,立马就很顺畅了.
实际工作中还有需要字体适配,字体一般在textview中,google推荐使用sp做单位,sp和dp一样,都是以160ppi像素密度做基准,160ppi时,屏幕正好是160像素代表1英寸.
所以如果需要动态的设置字体大小就要根据屏幕像素密度分别选择不同的像素值.具体像素密度获取方式如下:
这样根据获取的midu值就可以设置字体的像素了.
实际使用时,不同的图片资源,应分别放到不同的资源文件夹中,以达到不同ppi手机的适配效果,近几日,本人就遇到一个非常影响性能的问题,
一个很简单的页面,加载了一个44k大小300*200像素的图片背景,一个1000*1000像素大小400k的头像,下边一个listview,结果listview相应特别慢,
滑动时很卡,单独拿出来listview加载,就很顺畅,那肯定就是布局的问题,于是查看图片资源,发现所有图片全部放在mdpi内,本人是用nexus6测试,nexus6
像素密度是493ppi,于是mdpi的文件就被放大到3.5倍,1000像素的文件占用的内存相当可怕,于是把图片放置到xxhdpi内,立马就很顺畅了.
实际工作中还有需要字体适配,字体一般在textview中,google推荐使用sp做单位,sp和dp一样,都是以160ppi像素密度做基准,160ppi时,屏幕正好是160像素代表1英寸.
所以如果需要动态的设置字体大小就要根据屏幕像素密度分别选择不同的像素值.具体像素密度获取方式如下:
DisplayMetrics displayMetrics=new DisplayMetrics(); Activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); float midu=displayMetrics.density;
这样根据获取的midu值就可以设置字体的像素了.
相关文章推荐
- android activity 管理器AMS----概述
- BLE蓝牙在Android开发中的应用(二)
- android清除指定堆栈中某个activity
- SVN:MAC SVN Android studio不能提交.so文件
- Android五种数据传递方法汇总
- android源码分析之View的事件分发(上)
- android中的通信机制总结
- android sdk content loader 0%
- Mac下Android Studio环境搭建
- Android 开发值得订阅的日报和周刊
- Android常用颜色大全
- U8SDK——支持自动拆分成多个dex文件(MultiDex支持)
- Android中怎样使用计步器传感器 "TYPE_STEP_DETECTOR"
- Android学习 -- studio的快捷键们
- Android学习 -- 《AndroidManifest》
- android studio学习---Android studio 导入github工程
- 【Android基础】Android 高仿【优酷】圆盘旋转菜单的实现
- Android 监听键盘弹出和收起.
- Activity的四种启动模式详解
- Android快递物流信息布局开发