xingshen58的专栏

the best way to learn a language is to use it

android 保存当前屏幕或者view为图片bitmap

转自:http://blog.csdn.net/arui319/article/details/9273563

 

public class ScreenShot {

	public static Bitmap takeScreenShot(Activity activity) {
		// View是你需要截图的ViewView view = activity.getWindow().getDecorView();
  	view.setDrawingCacheEnabled(true);
  	view.buildDrawingCache();
  	Bitmap b1= view.getDrawingCache();// 获取状态栏高度
  	Rect frame = new Rect();
  	activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
  	int statusBarHeight = frame.top;// 获取屏幕长和高
  	int width = activity.getWindowManager().getDefaultDisplay().getWidth();
  	int height =  activity.getWindowManager().getDefaultDisplay()
    	.getHeight();// 去掉标题栏
  	Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
    	- statusBarHeight);view.destroyDrawingCache();
  	return b;
 	}
	<span style="color:#ff0000;">//新增方法</span>
	public static Bitmap takeViewShot(View view) {
  	// View是你需要截图的View
 	 view.setDrawingCacheEnabled(true);view.buildDrawingCache();
  	Bitmap b1 = view.getDrawingCache();// 获取View长和高
  	int width = view.getWidth();
  	int height = view.getHeight();Bitmap b = Bitmap.createBitmap(b1, 0, 0, width, height);
  	view.destroyDrawingCache();
  	return b;}private static void savePic(Bitmap b, File filePath) {
  	FileOutputStream fos = null;try {
   	fos = new FileOutputStream(filePath);
   	if (null != fos) {b.compress(Bitmap.CompressFormat.PNG, 100, fos);
    		fos.flush();
    		fos.close();}
  	} catch (FileNotFoundException e) {
  	} catch (IOException e) {
  	}}public static void shoot(Activity a, File filePath) {
  	if (filePath == null) {
   		return;}
  	if (!filePath.getParentFile().exists()) {
   		filePath.getParentFile().mkdirs();
  	}	ScreenShot.savePic(ScreenShot.takeScreenShot(a), filePath);
 	}}

 

 

阅读更多
个人分类: android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

android 保存当前屏幕或者view为图片bitmap

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭