浏览 2060 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-11
最后修改:2010-11-11
一般来说修改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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |