日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[Android学习笔记二] View转化Bitmap

發布時間:2025/1/21 Android 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Android学习笔记二] View转化Bitmap 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?在View類中的onDraw方法的參數Canvas是View繪制的背景,要將View轉換為Bitmap實際上就是讓Canvas上的繪制操作繪制到Bitmap上。


? ?View轉化為Bitmap也稱為截屏,讓用戶看到的View視圖轉化為圖片的過程。


? ?關于View轉化Bitmap涉及到的View類中的方法有:


???protected?void?onDraw(Canvas?canvas)public?void?buildDrawingCache()public?void?destroyDrawingCache()public?Bitmap?getDrawingCache()public?void?setDrawingCacheEnabled(boolean?enabled)


? ?下面是常見的幾個View截屏的示例:

??

1.View轉Bitmap

? ?

public?final?Bitmap?screenShot(View?view)?{if?(null?==?view)?{throw?new?IllegalArgumentException("parameter?can't?be?null.");}view.measure(View.MeasureSpec.UNSPECIFIED,?View.MeasureSpec.UNSPECIFIED);view.layout(0,?0,?view.getMeasuredWidth(),?view.getMeasuredHeight());view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap?bitmap?=?view.getDrawingCache();return?bitmap;}

??

2. Activity轉Bitmap,不帶狀態欄

public?final?Bitmap?screenShot(Activity?activity)?{if?(null?==?activity)?{throw?new?IllegalArgumentException("parameter?can't?be?null.");}View?view?=?activity.getWindow().getDecorView();view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap?b1?=?view.getDrawingCache();Rect?frame?=?new?Rect();view.getWindowVisibleDisplayFrame(frame);int?statusBarHeight?=?frame.top;Point?point?=?new?Point();activity.getWindowManager().getDefaultDisplay().getSize(point);int?width?=?point.x;int?height?=?point.y;Bitmap?b2?=?Bitmap.createBitmap(b1,?0,?statusBarHeight,?width,?height?-?statusBarHeight);view.destroyDrawingCache();return?b2;}


3. ScrollView轉長Bitmap(類似錘子便簽的截長圖)


?public?final?Bitmap?screenShot(ScrollView?scrollView)?{if?(null?==?scrollView)?{throw?new?IllegalArgumentException("parameter?can't?be?null.");}int?height?=?0;Bitmap?bitmap;for?(int?i?=?0,?s?=?scrollView.getChildCount();?i?<?s;?i++)?{height?+=?scrollView.getChildAt(i).getHeight();scrollView.getChildAt(i).setBackgroundResource(android.R.drawable.screen_background_light);}bitmap?=?Bitmap.createBitmap(scrollView.getWidth(),?height,?Bitmap.Config.ARGB_8888);final?Canvas?canvas?=?new?Canvas(bitmap);scrollView.draw(canvas);return?bitmap;}


轉載于:https://blog.51cto.com/aiilive/1711443

總結

以上是生活随笔為你收集整理的[Android学习笔记二] View转化Bitmap的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。