源码修改中出现的BadTokenException & Dialog的修改和继承 & 2.2源码中分辨率hdpi设置...

      一般来说修改Dialog界面的颜色、背景之类的元素主要涉及的是资源文件修改,不存在源码修改。这里需要提及若是增加或者替换了图片,这里使用make -j2是识别不出来的,为了让其进行最小的编译可以有选择删除下面路径的文件

 

out\target\common\obj\APP\framework-res_intermediates

 

      以上没有涉及Dialog布局方面的修改,若是修改布局最好重载Dialog并定义自己的Theme,在相应的以下几个文件进行修改:

 

attrs.xml  styles.xml themes.xml  
public.xml \\为了让外部类识别该主题

     这里需要注意的是style用于单个布局xml的单个元素,而theme可以将其作为一个单位用在应用中的所有Activity中。重载了Dialog类后在调用该类时需要注意其调用类的类型:

     当调用类继承于WindowManagerPolicy时在Dialog类中的onCreate需要加入以下代码:

 

Window window = getWindow();
window.requestFeature(Window.FEATURE_NO_TITLE);
window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
window.setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
              WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

     如果调用类是Activity类,则不可以加入该类,否则这两种情况下都会抛出BadTokenException错误(已经通过程序验证,那里如果有错请各位指正O(∩_∩)O~)

 

 

 

    最后一点是在直接编译源码时候

out\target\product\generic\system\framework\framework-res.apk

    中没有hdpi文件夹,虽然在

 

out\target\common\obj\APPS\framework-res_intermediates\public_resources.xml

    hdpi文件夹的资源都已经被编译出来了,可是未能在system.img中有hdpi的资源,从而导致即便是设置480*800的分辨率其模拟器显示的结构依旧是mdpi的资源,因此需要做以下修改

 转载请注明(http://ishelf.iteye.com/blog/809040

 

在文件夹 build\target\product\generic.mk加入

CUSTOM_LOCALES:= hdpi mdpi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值