也挺简单的,现在主要说一下我碰到的问题。我的想法很简单,自定义一个组件,这个自定义组件就是一个LinearLayout,背景设置为一个图片,图片路径为:res/drawable/bg.png,通过出this.setBackgroundResource(R.drawable.bg)实现,按照上述的步骤输出为jar后,给另一个app调用,发现图片根本无法输出,老是显示调用者的默认Icon.
反编了一下百度地图jar,发现它所有图片都是放在assets中,并不是放在res/drawable中,然后再查看了一下代码,其对图片的调用是通过AssetManager.open()方法来实现的,并非通过R.drawble来实现,修改后的代码如下:
private void init() {
try {
//获取图片转换为Bitmap
AssetManager localAssetManager = this.getResources().getAssets();
String str = "home_pressed.png";
InputStream localInputStream = localAssetManager.open(str);
Bitmap localBitmap = BitmapFactory.decodeStream(localInputStream);
localInputStream.close();
//把Bitmap图像转换为Drawable
Drawable drawable = new BitmapDrawable(localBitmap);
//设置背景
if(localBitmap != null){
setBackgroundDrawable(drawable);
}
} catch (Exception e) {
e.printStackTrace();
}
}
http://file.adobex.com/uploadfile/2011/1208/20111208121038195.zip
转载:http://www.adobex.com/android/source/details/00000429.htm