屏幕适配的问题,我相信很多大牛的经验远比我丰富,在此就简单的分享一下我所做的的屏幕适配方案,当然我说的是安卓方面的啦,嘿嘿,屏幕适配我们一般用1280*720的屏幕作为我们的主流开发屏,当然现在AndroidStudio上面可以直接看到所有种类的屏幕,大大方便了我们的开发。

我们遵循的原则是不用AbsoluteLayout(绝对布局),多用相对布局&线性布局(权重), 要用dp,不用px。

开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线。

1、图片适配:不是很常用

2、布局适配:不是很常用,  layout-800x480 专门适配480*800的屏幕

3、 权重适配:android:weightSum="3"

4、代码适配:获取屏幕宽高,动态计算控件

int width=getWindowManager

().getDefaultDisplay().getWidth

();

slidingMenu.setBehindOffset

(width*200/320);// 设置预留屏幕的

宽度

5、尺寸适配:

dp和px的关系: dp = px/设备密度





float density = getResources().getDisplayMetrics().density;



           320*240(0.75), 480*320(1),480*800(1.5),1280*720(2)



括号后面的就是计算出来的屏幕密度。

我们可以在values->dimens.xml  中设置大小

然后再新建一个文件夹:values-1280x720,当屏幕是1280*720的时候就优先加载这个文件夹的。

public class DensityUtils {

	/**
* dp转px
*/
public static int dp2px(Context ctx, float dp) {
float density = ctx.getResources().getDisplayMetrics().density;
int px = (int) (dp * density + 0.5f);// 四舍五入 return px;
} public static float px2dp(Context ctx, int px) {
float density = ctx.getResources().getDisplayMetrics().density;
float dp = px / density; return dp;
}
}

最新文章

  1. 关于基本类型值和引用类型值以及Vue官方API的array.$remove(reference)
  2. pro*c添加SQLCHECK后编译报错PLS-S-00201
  3. Nginx开发从入门到精通 学习目录分享学习 (阿里著作)
  4. opencv学习笔记(03)——遍历图像(迭代器法)
  5. JSP与Servlet之间传值
  6. linux 文件类命令笔记
  7. Ubuntu安装Mysql及使用
  8. AndroidAndroid程序提示和消息button响应事件
  9. Composer PHP依赖管理的新时代
  10. AFNetWorking 之 Get/Post 请求的使用
  11. TFS2010升级至TFS2013完全指南
  12. linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)
  13. Pyqt5-Python应用开发——第一个小程序的实现
  14. ZOJ Monthly, January 2018
  15. one-to-one 一对一映射关系(转 wq群)
  16. css多列居中
  17. 在windows命令行批量ping局域网内IP
  18. 解决VisualStudio无法调试的问题
  19. Python SSH爆破以及Python3线程池控制线程数
  20. SHA-256 加密原理

热门文章

  1. [ZJOI2010]排列计数
  2. bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
  3. HEOI2017游记
  4. 凸包(BZOJ1069)
  5. js打印小结
  6. GC机制
  7. javascript面向对象(给对象添加属性和方法的方式)
  8. 关于 printf scanf getchar
  9. Java finalize方法使用
  10. 对闭包的理解(closure)