【笔记】Android应用自适应设备分辨率
来源:互联网 发布:知柏地黄丸能治失眠吗 编辑:程序博客网 时间:2024/06/06 03:21
Android设备种类太过繁杂,分辨率有大不相同;所以在做应用的时候很麻烦,之前都是为不同分辨率的设备做不同的版本,这样就造成了很难维护;
现在解决这个问题的主要思想是:获取设备的分辨率,根据不同的分辨率设备来动态加载布局文件和图片资源;
现在的解决方法是:
1、通过以下代码来获取设备的分辨率,写到配置文件内
/** * 自动识别机器分辨率,写配置文件 */public void getDisplayPixels(){DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);switch(dm.widthPixels){case 1024:if(dm.heightPixels == 768){cfg.setConfig("displayPixels", "0");}break;case 1280:if(dm.heightPixels == 800){cfg.setConfig("displayPixels", "1");}break;default: cfg.setConfig("displayPixels", "-1");}}
2、些不同的视图文件(布局文件XML),来适应不同的分辨率设备(支持主流设备分辨率即可),如下图所示:
3、通过配置文件内的参数来读取布局文件,如下两段代码片段:
cfg = new ConfigUtils(this, "config"); if(cfg.getConfig("displayPixels", "").equals("0")){ setContentView(R.layout.dishes_details_1024_768); }else{ setContentView(R.layout.dishes_details_1280_800); }
LayoutInflater factory = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);View v = null;if(cfg.getConfig("displayPixels", "").equals("0")){v = (View)factory.inflate(R.layout.dishes_details_content_1024_768, null);}else{v = (View)factory.inflate(R.layout.dishes_details_content_1280_800, null);}
- 【笔记】Android应用自适应设备分辨率
- 自适应设备分辨率
- android应用自适应多分辨率的解决方法
- android应用自适应多分辨率的解决方法
- android应用自适应多分辨率的解决方法
- android应用自适应多分辨率的解决方法
- android 分辨率自适应
- android 分辨率自适应
- Android自适应不同分辨率
- android 分辨率自适应
- ANDROID 分辨率自适应
- android 分辨率自适应
- android 分辨率自适应
- Android多分辨率自适应
- android 分辨率自适应
- android 分辨率自适应
- android 分辨率自适应
- Android自适应分辨率
- 精简易理解的ios开发要点
- csdn的大一第二学期笔记
- [SQL Server]创建某DB的Snapshot,与从shapshot还原某DB
- 转 开关电源原理
- 安装xcode4.2 for snow leopard提示安装失败的解决方法
- 【笔记】Android应用自适应设备分辨率
- meta(刷新功能)
- ALM in my project
- 基于 Android NDK 的学习之旅-----环境搭建
- Android Activity 中 onActivityResult() 与 setResult()的调用时机
- 亚星“天景”双巴为古都咸阳再添新“景”
- ActiveMQ实例
- csdn的大一第二学期笔记
- Android 程式开发:(二)使用Intents链接Activities —— 2.2“过滤器”冲突