Android中density如何设置

本文介绍了如何通过修改配置文件或源码来成功设置Android模拟器的屏幕密度为180,包括修改default.prop文件和重新编译源码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:http://android.tgbus.com/Android/tutorial/201103/347176.shtml




在新建模拟器的时候设置hw.lcd.density=180,是没有任何作用的,系统会有个判断,去规为标准:
代码位置:
git://android.git.kernel.org/platform/external/qemu.git?android?hw-lcd.c

(顺便说一个很好的android原码查找方法:http://www.google.com/codesearch


void hwLcd_setBootProperty(int density)
{
    char  temp[8];

    /* map density to one of our three values for now */
    if (density < (LCD_DENSITY_MIN + LCD_DENSITY_DEFAULT)/2)
        density = LCD_DENSITY_MIN;
    else if (density < (LCD_DENSITY_DEFAULT + LCD_DENSITY_MAX)/2)
        density = LCD_DENSITY_DEFAULT;
    else
        density = LCD_DENSITY_MAX;

    snprintf(temp, sizeof temp, "%d", density);
    boot_property_add("qemu.sf.lcd_density", temp);
}
所以我们只要输入的不是120,160,240,她都会归到在这三个数值里。

经过几经尝试终于有了结果

一.每个硬件厂商都会有自己的硬件配置文件,会把硬件的信息记载到里边,有个大虾叫我这样改:
1、修改 default.prop 文件,添加 ro.sf.lcd_density=180 一行,转到 <android_src>/out/target/product/generic/root 目录下
    $ cd <android_src>/out/target/product/generic/root
    $ cat >> default.prop << EOF
      ro.sf.lcd_density=180
      EOF
2、重新制作 ramdisk.img:
    $ cpio -o -H newc -O ramdisk.img.1 < list
    $ gzip -c ramdisk.img.1 > ramdisk.img
3、测试:
    用模拟器加载新的 ramdisk.img :
    $ emulator -avd <avd_name> -ramdisk ramdisk.img &

  
二.修改源码默认值160,这种方法会有效果的:  
具体修改源码中test_froyo/external/qemu/android/hw-lcd.h文件的160为所要的density值  
例如:改为180  
#defineLCD_DENSITY_DEFAULT160==》#defineLCD_DENSITY_DEFAULT180  
然后保存,编译源码,网上方法介绍的很多,这里就不赘诉了。  
编好后,在test_froyo/out/host/linux-x86/bin下的emulator文件,  
拷到sdk/tools/emulator,覆盖即可  
注意:新的emulator默认的density是你自己设置的值(本文为180),最好保存一下原有的emulator,以便日后恢复。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值