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


  转自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,终于成功了。

你可能感兴趣的:(软件)