Android如何缩放图片以及Drawable转Bitmap方法

来源:互联网 发布:导购网站源码 编辑:程序博客网 时间:2024/06/02 06:28
package com.esri.cuc.util;


import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.PixelFormat;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;


public class BitmapUtiles {

public static Drawable scaleBitmap(Bitmap bitmapOrg,int setwh,int setht){

// / 加载需要操作的图片,这里是eoeAndroid的logo图片   
//        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),   
//               R.drawable.eoe_android);   
  
        //获取这个图片的宽和高   
        int width = bitmapOrg.getWidth();   
        int height = bitmapOrg.getHeight();   
  
        //定义预转换成的图片的宽度和高度   
        int newWidth = setwh;   
        int newHeight = setht;   
  
        //计算缩放率,新尺寸除原始尺寸   
        float scaleWidth = ((float) newWidth) / width;   
        float scaleHeight = ((float) newHeight) / height;   
  
        // 创建操作图片用的matrix对象   
        Matrix matrix = new Matrix();   
  
        // 缩放图片动作   
        matrix.postScale(scaleWidth, scaleHeight);   
  
        //旋转图片 动作   
//        matrix.postRotate(45);   
  
        // 创建新的图片   
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,   
                          width, height, matrix, true);   
  
        //将上面创建的Bitmap转换成Drawable对象,使得其可以使用在ImageView, ImageButton中   
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);   

return bmd;
}

/*********************Drawable转Bitmap************************/
public static Bitmap drawabletoBitmap(Drawable drawable){
 
 int width = drawable.getIntrinsicWidth();
 int height = drawable.getIntrinsicWidth();
 
 Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE ?
    Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
 Canvas canvas = new Canvas(bitmap);
 drawable.setBounds(0, 0, width, height);
 
 drawable.draw(canvas);
 
 return bitmap;
}


}
原创粉丝点击