您的位置:首页 > 移动开发 > Android开发

android关于View的截图

2013-11-15 16:30 302 查看
一、截取缓存图片(当前屏幕显示的部分):

从ImageView对象中获取图像的方法,就是ImageView类中的getDrawingCache()方法,比如下面的代码就是从一个ImageView对象iv_photo中获取图像:

Bitmap obmp = Bitmap.createBitmap(iv_photo.getDrawingCache());

但是需要说明的是:

1. 在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:

iv_photo.setDrawingCacheEnabled(true);

否则,无法从ImageView对象iv_photo中获取图像;

2. 在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:

iv_photo.setDrawingCacheEnabled(false);

以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。

二、截取webView的整个网页:

android.graphics.Picture pic = wView.capturePicture();

int width = pic.getWidth();

int height = pic.getHeight();

Bitmap bmp = Bitmap.createBitmap(width, 200, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bmp);

pic.draw(canvas);

imageView.getBackground(),是获取它的背景图片;

在调用getDrawingCache的时候要注意下面2点:

在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:

imageview.setDrawingCacheEnabled(true);

否则,无法从ImageView对象iv_photo中获取图像;

在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:

imageview.setDrawingCacheEnabled(false);

以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。

private Bitmap shot(Activity activity) {

//View是你需要截图的View

View 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;

Log.i("TAG", "" + statusBarHeight);

// 获取屏幕长和高

int width = activity.getWindowManager().getDefaultDisplay().getWidth();

int height = activity.getWindowManager().getDefaultDisplay().getHeight();

// 去掉标题栏

Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);

Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);

view.destroyDrawingCache();

return b;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: