大家好,
根据这里的建议,我需要将我的位图转换成可绘制对象。但当我尝试使用以下代码时:
Drawable d = new Drawable( my_bmp);
它显示这个构造函数已经被弃用,建议使用:
Drawable(Bitmap bmp, int resourceId)
我怎样才能将位图制作成可绘制的图形?
谢谢。
您可以使用
Drawable d = new BitmapDrawable(getResources(), my_bmp);
BitmapDrawable是一个包装了位图的Drawable对象,可以进行平铺、拉伸或对齐操作。你可以从文件路径、输入流、XML解析或已有的Bitmap对象创建BitmapDrawable。
BitmapDrawable(Resources res, Bitmap bitmap)
根据资源的显示度量标准,创建一个从位图生成的drawable,并设置初始目标密度。
还可以查看公共构造函数 @
http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html
BitmapDrawable(Resources res, String filepath)
filepath是位图的路径。 - Raghunandan尝试以下方法将 Bitmap
加载为 Bitmap Drawable
创建如下的 ImgDrawableFromFile(Resources res, String file_name)
Drawable d = null;
public Drawable ImgDrawableFromFile(Resources res, String file_name) {
myBitmap = null;
File imgFile = new File(
"/data/data/yourpkgname/app_my_sub_dir/images/" + file_name);
if (imgFile.exists()) {
myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
if (myBitmap != null) {
d = new BitmapDrawable(res, myBitmap);
return d;
} else {
return null;
}
}
return null;
}
img.setBackgroundDrawable(ImgDrawableFromFile(getResources(), "1.jpg")); // pass your saved file name as second argument
Drawable d = new BitmapDrawable(getResources(),bitmap);
getResources()
是Context
或Activity
中可用的方法,仅用于查找屏幕密度并相应地调整可绘制对象。getResources()
。BitmapDrawable(Bitmap bitmap)
构造函数已被 弃用
你可以使用
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
Bitmap bitmap = BitmapFactory.decodeStream(new URL(url).openConnection().getInputStream());
- Kinkapublic class BitmapImage {
private final Bitmap bitmap;
public BitmapImage (Bitmap bitmap) {
this.bitmap = bitmap;
}
public Bitmap getBitmap() {
return bitmap;
}
public Drawable getDrawable(Resources res) {
return new BitmapDrawable(res,getBitmap());
}
这个非常简单的类可以“保存”位图。因此,你不必使用Drawable
,而是使用BitmapImage
,直到你真正需要Drawable
。
在那时,你应该在Activity
或Context
中调用Drawable foo = anyBitmapImage.getDrawable(getResource())
。
您可以使用 BitmapDrawable 类从位图中获取 Drawable
Bitmap Drawable 参考资料
Drawable d=new BitmapDrawable(res, bmp);
- M D