Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51566
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-07 16:31
文章分类
文章存档

2014年(67)

我的朋友

分类: LINUX

2014-02-07 16:40:13

原文地址:[转]Android应用换肤 作者:okitamicuki1412

SharedUserid 
拥有同一个User id的多个APK可以配置成运行在同一个进程中,所以默认就是可以互相访问任意数据。也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件,就像访问本程序的数据一样。 

哈哈,这个就是我要找的东西,马上开始试验。 

工程1(主工程) 
只有1个画面,包含1个为了测试用的button 
AndroidManifest.xml 
Java代码 
  1. "1.0" encoding="utf-8"?>  
  2. ""  
  3.     package="com.test.android.skin.main" android:versionCode="1"  
  4.     android:versionName="1.0" android:sharedUserId="com.test.android.skin">  
  5.   
  6.     "@drawable/icon" android:label="@string/app_name">  
  7.   
  8.         ".MainActivity" android:label="@string/app_name">  
  9.               
  10.                 "android.intent.action.MAIN" />  
  11.                 "android.intent.category.LAUNCHER" />  
  12.               
  13.           
  14.   
  15.       
  16.   
  17.   


MainActivity 
Java代码 
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     setContentView(R.layout.main);  
  5.   
  6.     Context friendContext = null;  
  7.   
  8.     try {  
  9.         friendContext = this.createPackageContext(  
  10.                 "com.test.android.skin.myskin",  
  11.                 Context.CONTEXT_IGNORE_SECURITY);  
  12.     } catch (NameNotFoundException e) {  
  13.         e.printStackTrace();  
  14.     }  
  15.   
  16.     Button btn = (Button) findViewById(R.id.btn);  
  17.     btn.setBackgroundDrawable(friendContext.getResources().getDrawable(  
  18.             R.drawable.btn_background));  
  19. }  


drawable下放一张名为btn_background.pnd的图片 

工程2(皮肤工程) 
AndroidManifest.xml 
Java代码 
  1. "1.0" encoding="utf-8"?>  
  2. ""  
  3.     package="com.test.android.skin.myskin" android:versionCode="1"  
  4.     android:versionName="1.0" android:sharedUserId="com.test.android.skin">  
  5.   
  6.     "@drawable/icon" android:label="@string/app_name">  
  7.   
  8.         ".MainActivity" android:label="@string/app_name">  
  9.   
  10.               
  11.                 "android.intent.action.MAIN" />  
  12.                 "android.intent.category.LAUNCHER" />  
  13.               
  14.   
  15.           
  16.   
  17.       
  18.   
  19.    


drawable下也放一张名为btn_background.png的图片(换成xml文件就可以实现不同状态不同图片的功能) 
阅读(131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~