pad 强制加载 Hdpi资源 (2.3 dpi < 240)
来源:互联网 发布:windows nginx iis 编辑:程序博客网 时间:2024/05/16 15:49
做一款pad产品,屏幕是7寸,分辨为1024*600。芯片厂商给的代码运行起来但视觉效果很差,第一眼就可以看出壁纸被严重拉伸过,图片色块和锯齿很明显,一开始怀疑是屏驱动没有调好,找专人对lcd驱动进行了优化,但问题没有多少改善。最后发现是系统根据硬件报上来的参数计算出来设备的dpi只有169,远为达到读HDPI资源的240标准。
当时由于工期紧采取了妥协的做法,把所有的应用资源都放在mdpi里,虽然尺寸都是H的。
但很快出现了新问题:
1,launcher 无法加载第三方的高清icon,效果很模糊。
2,第三方应用运行的效果对比p1000差太多,完全不是pad的布局。
为了克服上述两个问题,中间试了很多方法和手段,查阅不少资料。有几种可行的方案,权衡利弊,最后还是决定在框架里面作修改:
1.framework/base/core/java/android/content/res/CompatibilityInfo.java
DEFAULT_PORTRAIT_WIDTH = 600
DEFAULT_PORTRAIT_HEIGHT = 1024
2.vendor/marvell/brownstone/brownstone.mk或者device/qcom/common/common.mk
+#Add for support High dpi
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.service.pp.enable = 1 \
+ro.sf.lcd_density = 240
+CUSTOM_LOCALES += hdpi mdpi
做完以上修改全编译系统,上述两个问题解决。
补充:从3.0开始,pad才算真正被Android系统所支持,google工程师还煞费苦心的引入新机制,使屏幕尺寸也成为决定系统加载何种i资源的依据之一
Note: Beginning with Android 3.2 (API level 13), these size groups are deprecated in favor of a new technique for managing screen sizes based on the available screen width. If you're developing for Android 3.2 and greater, see Declaring Tablet Layouts for Android 3.2 for more information.
use the code:
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.toString();
- pad 强制加载 Hdpi资源 (2.3 dpi < 240)
- 强制加载 Hdpi资源 (2.3 dpi < 240)
- Android 基于dpi的资源加载
- Android 基于dpi的资源加载
- Android加载不同DPI资源与内存消耗之间的关系
- [授权发表]Android加载不同DPI资源与内存消耗之间的关系
- Android加载不同DPI资源与内存消耗之间的关系
- Android加载不同DPI资源与内存消耗之间的关系
- Android加载不同DPI资源与内存消耗之间的关系
- Android 加载不同 DPI 资源与内存消耗间的关系
- Android加载不同DPI资源与内存消耗之间的关系
- Android加载不同DPI资源与内存消耗之间的关系
- hdpi
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- ****android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- 对于枚举 '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]', 值 '280dpi' 不具有面有效性。它必须是来自枚
- Hibernate详解(1)——总体框架
- 稀品网:海外精品及设计师产品预购平台
- Java入门需掌握的30个基本概念
- 使用JDBC批量修改Oracle序列步长
- C# 之DataTable的小问题
- pad 强制加载 Hdpi资源 (2.3 dpi < 240)
- 如何通过IAlertNotifyHandler来自定义Alert Email
- Could not initialize class net.sf.json.util.JSONUtils
- SPRING MVC注解 学习笔记
- early printk使用
- Linux下执行预定的任务Atd or Crond
- C语言 clock() 函数使用心得
- input 输入小树或者整数的正则表达式
- 黑马程序员 基础加强与项目2