android 截图 listview,Android屏幕及view的截图实例详解
Android屏幕及view的截圖實例詳解
屏幕可見區域的截圖
整個屏幕截圖的話可以用View view = getWindow().getDecorView();
public static Bitmap getNormalViewScreenshot(View view) {
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
return view.getDrawingCache();
}
scrollview的整體截屏
public static Bitmap getWholeScrollViewToBitmap(View view) {
view.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED));
view.layout(0,view.getMeasuredWidth(),view.getMeasuredHeight());
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
return bitmap;
}
webview的整體截圖
public static Bitmap getWholeWebViewToBitmap(WebView webView) {
Picture snapShot = webView.capturePicture();
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
listview的整體截圖
public static Bitmap getWholeListViewItemsToBitmap(ListView listview) {
ListAdapter adapter = listview.getAdapter();
int itemscount = adapter.getCount();
int allitemsheight = 0;
List bmps = new ArrayList();
for (int i = 0; i < itemscount; i++) {
View childView = adapter.getView(i,null,listview);
childView.measure(MeasureSpec.makeMeasureSpec(listview.getWidth(),MeasureSpec.EXACTLY),MeasureSpec.UNSPECIFIED));
childView.layout(0,childView.getMeasuredWidth(),childView.getMeasuredHeight());
childView.setDrawingCacheEnabled(true);
childView.buildDrawingCache();
bmps.add(childView.getDrawingCache());
allitemsheight += childView.getMeasuredHeight();
}
Bitmap bigbitmap = Bitmap.createBitmap(listview.getMeasuredWidth(),allitemsheight,Bitmap.Config.ARGB_8888);
Canvas bigcanvas = new Canvas(bigbitmap);
Paint paint = new Paint();
int iHeight = 0;
for (int i = 0; i < bmps.size(); i++) {
Bitmap bmp = bmps.get(i);
bigcanvas.drawBitmap(bmp,iHeight,paint);
iHeight += bmp.getHeight();
bmp.recycle();
bmp = null;
}
return bigbitmap;
}
需要多次截圖的話,需要用到 view.destroyDrawingCache();
Bitmap normalViewScreenshot = ScreenShotUtils.getNormalViewScreenshot(mFrameContent);
if (normalViewScreenshot != null) {
Bitmap b = Bitmap.createBitmap(normalViewScreenshot);
mImageResult.setImageBitmap(b);
mFrameContent.destroyDrawingCache();
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
總結
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
小編個人微信號 jb51ccc
喜歡與人分享編程技術與工作經驗,歡迎加入編程之家官方交流群!
總結
以上是生活随笔為你收集整理的android 截图 listview,Android屏幕及view的截图实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跳出所有循环的语句_从零开始的Java之
- 下一篇: 网站如何进行渠道跟踪_网站如何进行搜索引