一、截取缓存图片(当前屏幕显示的部分):

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

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

但是需要说明的是:

1.    

          

      

2.    

          

      

二、截取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点:

  1. 在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:
    imageview.setDrawingCacheEnabled(true);
    否则,无法从ImageView对象iv_photo中获取图像;
  2. 在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:
    imageview.setDrawingCacheEnabled(false);
    以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。






1. private Bitmap shot(Activity activity) {   
2. //View是你需要截图的View   
3.          View view = activity.getWindow().getDecorView();   
4. true);   
5.          view.buildDrawingCache();   
6.          Bitmap b1 = view.getDrawingCache();   
7. // 获取状态栏高度 /  
8. new Rect();  
9.          activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
10. int statusBarHeight = frame.top;  
11. "TAG", "" + statusBarHeight);  
12. // 获取屏幕长和高  
13. int width = activity.getWindowManager().getDefaultDisplay().getWidth();  
14. int height = activity.getWindowManager().getDefaultDisplay().getHeight();  
15. // 去掉标题栏  
16. 0, 25, 320, 455);  
17. 0, statusBarHeight, width, height - statusBarHeight);  
18.         view.destroyDrawingCache();  
19. return b;  
20.     }