android关于View的截图
一、截取缓存图片(当前屏幕显示的部分):
从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中获取的图像,还是原来的图像。
-
-
-
-
-
-
- privateBitmapshot(Activityactivity){
- //View是你需要截图的View
- Viewview=activity.getWindow().getDecorView();
- view.setDrawingCacheEnabled(true);
- view.buildDrawingCache();
- Bitmapb1=view.getDrawingCache();
- //获取状态栏高度/
- Rectframe=newRect();
- activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
- intstatusBarHeight=frame.top;
- Log.i("TAG",""+statusBarHeight);
- //获取屏幕长和高
- intwidth=activity.getWindowManager().getDefaultDisplay().getWidth();
- intheight=activity.getWindowManager().getDefaultDisplay().getHeight();
- //去掉标题栏
- Bitmapb=Bitmap.createBitmap(b1,0,25,320,455);
- Bitmapb=Bitmap.createBitmap(b1,0,statusBarHeight,width,height-statusBarHeight);
- view.destroyDrawingCache();
- returnb;
- }
更多相关文章
- Android(安卓)CountDownTimer
- Bitmap的回收
- Android下的binder机制和IPC原理
- Android(安卓)蓝牙开启关闭
- Android(安卓)Camera 通过V4L2与kernel driver的完整交互过程
- HwServiceManager篇-Android10.0 HwBinder通信原理(五)
- 图像滤镜(GPUImage/GPU加速)、美化/图像处理技术 拼接及Skia- An
- Android:图片不加载到内存获取图片的大小
- Android(安卓)ACCESS_COARSE_LOCATION的用途和介绍