android 图片转换

  • Post author:
  • Post category:其他


本文将介绍几种Android常用的图片的转化方法

(一)bitmap转换成drawable

Bitmap – 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。

Drawable – 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。

两者间的简单对比:

对比项 清晰度 占用内存 支持缩放 支持羞色相差调整 支持旋转 支持透明色 绘制速度 支持像素操作
Bitmap 相同
Drawable 相同


Drawable在内存占用和绘制速度这两个非常关键的点上胜过Bitmap;

public static Drawable bitmap2Drawable(Context context,Bitmap bitmap){
        // 设置bitmap转成drawable后尺寸不变
//      DisplayMetrics metrics = new DisplayMetrics();
        DisplayMetrics metrics = context.getApplicationContext().getResources().getDisplayMetrics();
//      ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(metrics);
        Resources resources = new Resources(context.getApplicationContext().getAssets(), metrics, null);
        // bitmap转drawable
        Drawable drawable = new BitmapDrawable(resources, bitmap);
        int scaleW = (int) (drawable.getIntrinsicWidth() / 2 * metrics.density);
        int scaleH = (int) (drawable.getIntrinsicHeight() / 2 * metrics.density);
        drawable.setBounds(



版权声明:本文为ye1831原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。