安卓获取当成view的bitmap

29 阅读1分钟

获取当前view的 bitmap

private Bitmap getBitmapFromView(View view) {
    Bitmap bitmap = Bitmap.createBitmap(
            view.getWidth(),
            view.getHeight(),
            Bitmap.Config.ARGB_8888
    );
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}

修改bitmap 的尺寸

public Bitmap getNewBitmap(Bitmap bm, int targetWidth, int targetHeight) {
    int srcWidth = bm.getWidth();
    int srcHeight = bm.getHeight();
    float widthScale = targetWidth * 1.0f / srcWidth;
    float heightScale = targetHeight * 1.0f / srcHeight;
    Matrix matrix = new Matrix();
    matrix.postScale(widthScale, heightScale, 0, 0);
    Bitmap bmpRet = Bitmap.createBitmap(targetWidth, targetHeight, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bmpRet);
    Paint paint = new Paint();
    paint.setColor(Color.WHITE);
    paint.setAntiAlias(true);
    paint.setFilterBitmap(true);
    canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));
    canvas.drawBitmap(bm, matrix, paint);
    return bmpRet;
}