package me.storm.ninegag.util; import android.graphics.Bitmap; import android.graphics.Canvas; import android.view.View; /** * Created by storm on 14-6-17. */ public class BitmapUtils { public static Bitmap drawViewToBitmap(View view, int width, int height, int downSampling) { return drawViewToBitmap(view, width, height, 0f, 0f, downSampling); } public static Bitmap drawViewToBitmap(View view, int width, int height, float translateX, float translateY, int downSampling) { float scale = 1f / downSampling; int bmpWidth = (int) (width * scale - translateX / downSampling); int bmpHeight = (int) (height * scale - translateY / downSampling); Bitmap dest = Bitmap.createBitmap(bmpWidth, bmpHeight, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(dest); c.translate(-translateX / downSampling, -translateY / downSampling); if (downSampling > 1) { c.scale(scale, scale); } view.draw(c); return dest; } }