本文将带你了解Android应用开发Android BitmapUtils工具类使用详解,希望本文对大家学Android有所帮助。

本文实例为大家分享了Android   BitmapUtils工具类的具体代码,供大家参考,具体内容如下

public   final class BitmapUtils {

public static final String TAG = "BitmapUtil";

private static int sShotScreenWidth = 480;

private static int sShotScreenHeight = 720;

private static int sShotScreenSize = sShotScreenWidth *   sShotScreenHeight;

@SuppressLint("StaticFieldLeak")

private static Context mContext;

@SuppressLint("StaticFieldLeak")

private static Activity mActivity;

public void init(Context context,Activity ac)   {

mContext=context;

mActivity=ac;

DisplayMetrics dm = new DisplayMetrics();

ac.getWindowManager().getDefaultDisplay().getMetrics(dm);

//获取屏幕分辨率

sShotScreenWidth =   dm.widthPixels;

sShotScreenHeight =   dm.heightPixels;

sShotScreenSize = sShotScreenWidth *   sShotScreenHeight;

}

/**

* 图片合成

*

* @param bitmap   位图1

* @param mark 位图2

* @return   Bitmap

*/

public static Bitmap createBitmap(Bitmap bitmap, Bitmap mark)   {

int w = bitmap.getWidth();

int h = bitmap.getHeight();

int mW = mark.getWidth();

int mH = mark.getHeight();

Bitmap newbitmap = Bitmap.createBitmap(w, h,   Config.ARGB_8888);//   创建一个长宽一样的位图

Canvas cv = new Canvas(newbitmap);

cv.drawBitmap(bitmap, 0, 0,   null);//   在 0,0坐标开始画入bitmap

cv.drawBitmap(mark, w - mW , h - mH ,   null);//   在右下角画入水印mark

cv.save(Canvas.ALL_SAVE_FLAG);// 保存

cv.restore();// 存储

return newbitmap;

}

/**

* 放大缩小图片

* @param bitmap   位图

* @param w   新的宽度

* @param h   新的高度

* @return   Bitmap

*/

public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h)   {

int width = bitmap.getWidth();

int height = bitmap.getHeight();

Matrix matrix = new Matrix();

float scaleWidht = ((float) w / width);

float scaleHeight = ((float) h / height);

matrix.postScale(scaleWidht,   scaleHeight);

return Bitmap.createBitmap(bitmap,   0, 0,   width, height, matrix, true);

}

/**

* 旋转图片

* @param bitmap 要旋转的图片

* @param angle   旋转角度

* @return   bitmap

*/

public static Bitmap rotate(Bitmap bitmap,int angle) {

Matrix matrix = new Matrix();

matrix.postRotate(angle);

return Bitmap.createBitmap(bitmap,   0, 0,   bitmap.getWidth(),

bitmap.getHeight(), matrix,   true);

}

/**

* 圆形图片

*@param source   位图

* @param strokeWidth 裁剪范围   0表示最大

* @param bl   是否需要描边

* @param bl   画笔粗细

* @param bl   颜色代码

* @return bitmap

*/

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐