theme的切换 亲爱的论友们,在下想要在代码中实现:多个theme在某个项目的所有activity中进行切换。希望大家给些意见,这要如何才能实现啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一套theme一个apk,只是包名不一样(如com.theme1、com.theme2) ,这个theme不要有launcher类 就是不让他有启动类 在主应用中调用图片的地方如似写if(1){imageView.setBackgroundDrawable(this.createPackageContext("com.theme1", Context.CONTEXT_IGNORE_SECURITY).getResources().getDrawable(R.drawable.icon));}else if(2){imageView.setBackgroundDrawable(this.createPackageContext("com.theme2", Context.CONTEXT_IGNORE_SECURITY).getResources().getDrawable(R.drawable.icon));} 谢谢你!该方法相当于要写多个项目吧?如果这样的话必须先要运行其他项目再运行主项目,那么如何才能实现之际运行主项目就可以运用theme呢?还有个问题就是用该方法不知道如何将这种theme运用到项目的所有activity中。 这里可能需要改动系统的framework底层实现了我现在正在尝试做如题的改动 所有的图片和对应的style还有font信息做为一个主题配置文件来保存和载入 需要改动的地方很多 嘿嘿,谢谢你!在网上也看到很多有关framework,但是我感觉都讲的很是冠冕堂皇,不是怎么的懂,可否给讲讲啊?还有,什么时候做出了RT,可否给个样板,让学习学习啊? 亲爱的论友们,如果只是有几张图片资源,想要把他们作为某个activity的background,具体实现要求为:1.在代码中实现2.自己可以控制选择哪张图片作为background3.当选择了一张图片作为其background之后,当想要选择其他的图片资源时可以自动修改总而言之,就是实现类似手机上皮肤切换的效果(只要实现在一个activity中进行切换就可以了)。懂得这方面知识的论论友帮帮忙吧! 不需要运行 只需要安装即可 可以在用户选中某个主题时弹出提示“下载此theme”,下载完以后直接弹出安装便可 额?我原本是想将theme资源或者图片资源放在项目中,如果像您说的这样的话还得与服务器联系起来啊?可不可以不与服务器相连啊?就是直接将资源放在项目中? protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setTheme(R.style.NewTheme);setContentView(R.layout.main);}<?xml version=”1.0″ encoding=”UTF-8″?><resources><style name=”NewTheme” parent=”android:Theme.Black”><item name=”android:windowNoTitle”>true</item><item name=”android:textColor”>#FFFF0000</item></style></resources><?xml version=”1.0″ encoding=”UTF-8″?><resources><style name=”NewTheme2” parent=”android:Theme.Black”><item name=”android:windowNoTitle”>false</item><item name=”android:textColor”>#FFFF0000</item></style></resources>R.style.NewTheme设置一个全局变量,你看是让文件还是哪保存起来,具体的属性估计你要自己试试。 这个全局变量要怎么设置?并且我想要实现的是不同theme之间的切换,看了,还是不懂 <?xml version="1.0" encoding="utf-8"?><resources> <style name="CustomTheme" parent="android:Theme"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">35sp</item> <item name="android:textColor">#823456</item> <item name="android:windowBackground">@drawable/logo</item> <item name="android:listViewStyle">@style/CustomTheme.ListView</item> </style> <style name="CustomTheme.ListView" parent="@android:style/Widget.ListView"> <item name="android:cacheColorHint">#00000000</item> </style> <style name="CustomTheme2" parent="android:Theme"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">25sp</item> <item name="android:textColor">#654321</item> <item name="android:listViewStyle">@style/CustomTheme.ListView</item> </style></resources>=====================public class AsyncListImage extends Activity { public static boolean themFlag = false; @Override public void onCreate(Bundle savedInstanceState) { if (!themFlag == true) { System.out.println("==a"); AsyncListImage.this.setTheme(R.style.CustomTheme); } else { System.out.println("==b"); AsyncListImage.this.setTheme(R.style.CustomTheme2); } super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.ButtonTopPreUI); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { if (!themFlag == true) { System.out.println("==a"); AsyncListImage.this.setTheme (R.style.CustomTheme); } else { System.out.println("==b"); AsyncListImage.this.setTheme(R.style.CustomTheme2); } themFlag = !themFlag; AsyncListImage.this.onCreate(null); } });..................................setTheme方法必须在setContentView()之前才会起作用,所有以才AsyncListImage.this.onCreate(null);写了下 getaddrinfo.c里面怎么增加调试语句? Android 声控问题 有人说Java ME 和安卓不是一回事,怎么回事 求一算法 请问如何防止别人自刷update.zip 修改了应用程序,启动android模拟器,出来的界面是没修改前的,怎么解决 android选择控件问题 Android Parcel: unable to marshal value 异常 【求助】安卓虚拟菜单键怎么放到屏幕下面? 软件欢迎界面,全屏变换透明度,做出来只有半屏变换,求大神调试 Android手机端为什么要用到数据库? 模拟器默认网络模式是GSM,在什么地方定义的呢?
if(1)
{
imageView.setBackgroundDrawable(this.createPackageContext("com.theme1", Context.CONTEXT_IGNORE_SECURITY).getResources().getDrawable(R.drawable.icon));
}
else if(2)
{
imageView.setBackgroundDrawable(this.createPackageContext("com.theme2", Context.CONTEXT_IGNORE_SECURITY).getResources().getDrawable(R.drawable.icon));
}
该方法相当于要写多个项目吧?如果这样的话必须先要运行其他项目再运行主项目,那么如何才能实现之际运行主项目就可以运用theme呢?还有个问题就是用该方法不知道如何将这种theme运用到项目的所有activity中。
我现在正在尝试做如题的改动
所有的图片和对应的style还有font信息做为一个主题配置文件来保存和载入
需要改动的地方很多
嘿嘿,谢谢你!
在网上也看到很多有关framework,但是我感觉都讲的很是冠冕堂皇,不是怎么的懂,可否给讲讲啊?还有,什么时候做出了RT,可否给个样板,让学习学习啊?
2.自己可以控制选择哪张图片作为background
3.当选择了一张图片作为其background之后,当想要选择其他的图片资源时可以自动修改
总而言之,就是实现类似手机上皮肤切换的效果(只要实现在一个activity中进行切换就可以了)。懂得这方面知识的论论友帮帮忙吧!
额?我原本是想将theme资源或者图片资源放在项目中,如果像您说的这样的话还得与服务器联系起来啊?
可不可以不与服务器相连啊?就是直接将资源放在项目中?
super.onCreate(savedInstanceState);
setTheme(R.style.NewTheme);
setContentView(R.layout.main);
}
<?xml version=”1.0″ encoding=”UTF-8″?>
<resources>
<style name=”NewTheme” parent=”android:Theme.Black”>
<item name=”android:windowNoTitle”>true</item>
<item name=”android:textColor”>#FFFF0000</item>
</style>
</resources>
<?xml version=”1.0″ encoding=”UTF-8″?>
<resources>
<style name=”NewTheme2” parent=”android:Theme.Black”>
<item name=”android:windowNoTitle”>false</item>
<item name=”android:textColor”>#FFFF0000</item>
</style>
</resources>R.style.NewTheme设置一个全局变量,你看是让文件还是哪保存起来,具体的属性估计你要自己试试。
这个全局变量要怎么设置?并且我想要实现的是不同theme之间的切换,看了,还是不懂
<resources>
<style name="CustomTheme" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:textSize">35sp</item>
<item name="android:textColor">#823456</item>
<item name="android:windowBackground">@drawable/logo</item>
<item name="android:listViewStyle">@style/CustomTheme.ListView</item>
</style>
<style name="CustomTheme.ListView" parent="@android:style/Widget.ListView">
<item name="android:cacheColorHint">#00000000</item>
</style>
<style name="CustomTheme2" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:textSize">25sp</item>
<item name="android:textColor">#654321</item>
<item name="android:listViewStyle">@style/CustomTheme.ListView</item>
</style>
</resources>=====================
public class AsyncListImage extends Activity {
public static boolean themFlag = false;
@Override
public void onCreate(Bundle savedInstanceState) {
if (!themFlag == true) {
System.out.println("==a");
AsyncListImage.this.setTheme(R.style.CustomTheme);
} else {
System.out.println("==b");
AsyncListImage.this.setTheme(R.style.CustomTheme2);
}
super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.ButtonTopPreUI);
btn.setOnClickListener(new Button.OnClickListener() { @Override
public void onClick(View v) {
if (!themFlag == true) {
System.out.println("==a");
AsyncListImage.this.setTheme (R.style.CustomTheme);
} else {
System.out.println("==b");
AsyncListImage.this.setTheme(R.style.CustomTheme2);
}
themFlag = !themFlag;
AsyncListImage.this.onCreate(null);
} });
.................
.................
setTheme方法必须在setContentView()之前才会起作用,所有以才AsyncListImage.this.onCreate(null);
写了下