Android 适配的一些总结
2015-08-31 16:34
316 查看
Android设备需要做适配,道理很简单。
1. Android开源,手机设备厂商众多标准很难统一。现状是Android设备各种屏,碎片化严重。
2. 如果不做适配,要么你的Android程序需求已经对设备进行了强制要求,要么就是你不想所有用户好好跑你程序。
3. 废话不多说了,怎么做呢?我看来有两种途径,一种是简单粗暴的获取设备长和宽,按照百分比设置控件的大小和间距,百度了一阵感觉没什么人介绍,可能是太简单了吧。另一种就是各种博客各种介绍的根据分辨率,像素,像素密度,图片分辨率大小综合上述因素再根据Android提供的适配方案,来进行Android设备的适配。
如何选择哪种方案,当只有一种分辨率的图片资源时,又没有一个得力的美工,或者处理图片的耐心,建议使用第一种方案。第二种方案实现网上教程很多,再此处不再赘述,想学习使用第二种方案的推荐看。屏幕适配全攻略。因为第一种方案我没百度到所以写下来。
首先,获取当前屏幕的宽度,高度。
其次,设置View的长宽
最后,设置控件间隔
1. Android开源,手机设备厂商众多标准很难统一。现状是Android设备各种屏,碎片化严重。
2. 如果不做适配,要么你的Android程序需求已经对设备进行了强制要求,要么就是你不想所有用户好好跑你程序。
3. 废话不多说了,怎么做呢?我看来有两种途径,一种是简单粗暴的获取设备长和宽,按照百分比设置控件的大小和间距,百度了一阵感觉没什么人介绍,可能是太简单了吧。另一种就是各种博客各种介绍的根据分辨率,像素,像素密度,图片分辨率大小综合上述因素再根据Android提供的适配方案,来进行Android设备的适配。
如何选择哪种方案,当只有一种分辨率的图片资源时,又没有一个得力的美工,或者处理图片的耐心,建议使用第一种方案。第二种方案实现网上教程很多,再此处不再赘述,想学习使用第二种方案的推荐看。屏幕适配全攻略。因为第一种方案我没百度到所以写下来。
首先,获取当前屏幕的宽度,高度。
DisplayMetrics dm=new DisplayMetrics(); dm=getResources().getDisplayMetrics(); int screenHeight=dm.heightPixels; int screenWidth=dm.widthPixels; setViewWidthAndHeight(questionBordPager, (int)(screenWIdth*0.5), (int)(screenHeight*0.21));
其次,设置View的长宽
public void setViewWidthAndHeight(View view,int Width,int height){ ViewGroup.LayoutParams params=view.getLayoutParams(); params.width=width; params.height=height; view.setLayoutParams(params); }
最后,设置控件间隔
public void setMarginTop(View view,int top) { ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams(); params.setMargins(0, top, 0, 0); view.setLayoutParams(params); } public void setMarginRight(View view,int right) { ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams(); params.setMargins(0, 0, right, 0); view.setLayoutParams(params); } public void setMarginLeft(View view,int left) { ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams(); params.setMargins(left, 0, 0, 0); view.setLayoutParams(params); } public void setMarginLeftAndTop(View view,int left,int top) { ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams(); params.setMargins(left, top, 0, 0); view.setLayoutParams(params); }
相关文章推荐
- android 拍照后照片旋转问题
- android 拍照后照片旋转问题
- android 控件状态配置文件
- android 4.2.2提示 unauthorized终极解决办法,很粗暴
- Android webview 和html 交互
- Android 蓝牙API
- android常用权限命令
- Android Studio中mipmap目录和drawable目录有什么区别
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- Android学习笔记---SQLite数据库 api
- Android soap请求和解析
- Android Studio 快捷键
- Android动画之translate(位移动画)
- Android源码分析---系统开机流程
- android平台程序崩溃的类型及原因列举
- Android动画 fillAfter和fillBefore
- Android动画学习Demo(3) 沿着贝塞尔曲线移动的Property Animation
- Android下binary级的一些分析调试方法
- Android打造不一样的EmptyView
- Android上积累代码