theme-不同主题资源更改

1.找到了影响桌面小部件的布局文件packages/apps/Mms$ vim res/layout/widget.xml
修改里面的背景颜色属性,可以实现预期效果,至于里面的 <LinearLayout
android:id="@+id/widget_header"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal"
android:paddingLeft="8dip"
android:paddingRight="8dip"
android:background="@drawable/header_bg_mms_widget_holo"//这个是半透明的效果,主题中没有,原生态的
android:gravity="center_vertical">



<ListView
android:id="@+id/conversation_list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:background="#00000000"
android:cacheColorHint="#00000000" />



android:background="#00000000"
这个属性更改以后,可以实现自己完全透明效果


成功的更改方法是
--制作两张图片,分别是com_android_mms_header_bg_mms_widget_holo.9.png(这个是在小部件的顶端背景)
                     com_android_mms_gradient_bg_widget_holo.g.png(这个是背景色)
                    把这两张图片放到对应的资源文件夹下面,然后p2x c一下,就是自动生成链接文件(可以尝试下,手动添加,加深理解)
                     list_dir_top_btm_mms_widget_holo(这个是手动添加的,添加在主题下面的某个资源文件夹下面,命名同样很重要的,前面加上包名)


    注意:主题访问资源的原理,似乎就是通过那个文件名来访问的,这个当然需要在xml文件下注册一下,只是,我们的p2x c为我们节省了手动这一步。至于命名最则,可以是包名(严格按照需要修改的模块下的AndoridManifest.xml的包名命名)或者也可以是完全跟你需要覆盖的那个资源完全重名,这两种方法都是可以的。但是,为了消除不同的模块对同一资源的不同适配,还是建议通过增加包名,进行唯一行区别

    更改方法:
            直接在当前主题下的values/funui_styles.xml中,增加两条语句、
            <drawable name="com_android_mms_list_div_top_btm_mms_widget_holo">#ffffff</drawable> (短信小部件list背景颜色)
            <drawable name="gradient_bg_widget_holo">#ffffff</drawable>  (底部的绿色去除)



修改联系人导入导出没有主题化的bug

--这个解决的方法有点特别,因为它不是因为主题资源没有适配的原因,而是因为适配以后没有生效
--这个bug说实话,完全是建华解决的。我之前一直努力的方向,感觉是有点问题。因为这个弹出框并不是一个可以直接找到的布局文件,而是一个activity,这个activity背后进行了system的属性设置,就是通过这个属性设置,实现了不同主题下的资源适配

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/vz_141028093.html