教你怎么做可以换皮肤的软件

本文介绍如何通过配置Android:sharedUserId属性使不同APK在Android系统中共享同一Userid,进而实现跨应用访问资源,如数据库和文件。具体演示了一个主应用与皮肤应用之间的资源共享案例。
  转自http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3 629.html 网上找了很久,未果。
  偶然的机会,看到aiMinesweeper.HelloSkin的AndroidManifest.xml里有那么一个属性:Android:sharedUserId="com.artfulbits.aiminesweeper"
  顿时感到看到了阳光,马上google了一下,发现了关键的地方。
  SharedUserid
  拥有同一个User id的多个APK可以配置成运行在同一个进程中,所以默认就是可以互相访问任意数据。也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件,就像访问本程序的数据一样。
  哈哈,这个就是我要找的东西,马上开始试验。
  工程1(主工程)
  只有1个画面,包含1个为了测试用的button
  AndroidManifest.xml MainActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Context friendContext = null; try { friendContext = this.createPackageContext( "com.test.android.skin.myskin", Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { e.printStackTrace(); } Button btn = (Button) findViewById(R.id.btn); btn.setBackgroundDrawable(friendContext.getResourc es().getDrawable( R.drawable.btn_background)); } drawable下放一张名为btn_background.png的图片
  工程2(皮肤工程)
  AndroidManifest.xml drawable下也放一张名为btn_background.png的图片(换成xml文件就可以实现不同状态不同图片的功能)
  把2个工程都安装到模拟器上以后,运行工程1,button上的图片果然是工程2中的btn_background.png,终于成功了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值