android 在擷取指定View的時候坑
前言
有時我們的需求需要取某一個VIew控制元件中一塊區域,但是截圖這個方法是不可行的,因為截圖是整個螢幕都擷取下來了,而且又沒有達到我們要的效果,我就踩到這個坑了,我是擷取整個螢幕然後把他儲存下來,會導致有點卡頓,有的會沒有,我的很卡。但是今天我又遇到這個需求了,我想要改變一下取View中的區域、同樣是根據View的寬高導致很卡,在有的情況下還不能使用,這個一個很大的問題。以下程式碼是現在我用的擷取view程式碼,在Activity fragment 還是dialog或者PopupWindow都行
/**
*擷取view
**/
public static Bitmap createViewBitmap(View v) {
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
v.draw(canvas);
return bitmap;
}
儲存圖片
/**
* @param bitmap
*/
public static void getBitmap(Bitmap bitmap, String name) {
if (bitmap != null) {
try {
// 獲取內建SD卡路徑
String sdCardPath = Environment.getExternalStorageDirectory().getPath();
// 圖片檔案路徑
String filePath = sdCardPath + File.separator + name;
imageShare(filePath, 0);
} catch (Exception e) {
}
}
}
分享微信
/**
* 分享圖片
* @param imgurl 儲存圖片路徑
* @param sendtype 區分分享到朋友圈還是好友
*/
public static void imageShare(String imgurl, int sendtype) {
final IWXAPI api = WXAPIFactory.createWXAPI(App.getInstance(), Constant.WXID, true);
File file = new File(imgurl);
if (!file.exists()) {
RxToast.error("圖片不存在");
}
WXImageObject imgObj = new WXImageObject();
imgObj.setImagePath(imgurl);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap bmp = BitmapFactory.decodeFile(imgurl);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 100, 100, true);
msg.setThumbImage(thumbBmp);
bmp.recycle();
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = sendtype == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
api.sendReq(req);
}
需要用到的直接按照這個上下順序複製就能用
相關文章
- javascript擷取指定指定區間的字串JavaScript字串
- JavaScript 擷取指定指定區間字串JavaScript字串
- 在IDEAL下執行測試Memcached快取資料功能的時候,快取時間過期之坑Idea快取
- js實現的擷取指定長度字串程式碼JS字串
- jQuery實現的擷取指定長度字串程式碼jQuery字串
- mysql 擷取指定的兩個字串之間的內容MySql字串
- Android的文字框內容改變的時候執行指定方法Android
- MAXLOGFILES 和MAXLOGMEMBERS是否只有在create database時候指定。Database
- javascript擷取指定長度字串相容中英文JavaScript字串
- javascript擷取指定位數的小數程式碼例項JavaScript
- 【Android】使用PackageManager讀取APK ICON時候的大坑AndroidPackageAPK
- 擷取指定長度字串長度程式碼例項字串
- Android ScrollView滾動到指定View的位置AndroidView
- 【Android PackageManager】使用PackageManager讀取APK ICON時候的大坑AndroidPackageAPK
- php擷取小時和分鐘,在進行和其它時間段的比較PHP
- Android獲取view高度AndroidView
- 在View and Data API中更改指定元素的顏色ViewAPI
- android 幾個經常用到的字串的擷取Android字串
- 如何擷取指定長度字串區分漢字和字元字串字元
- php字串擷取函式,支援中文擷取PHP字串函式
- Java擷取指定區間內的陣列元素並存入新陣列Java陣列
- Linux 中 awk命令如何擷取指定欄位的前幾個字元Linux字元
- js擷取指定字串長度程式碼區分中英文JS字串
- js擷取JS
- 擷取ip
- 字串擷取字串
- Entrust 在使用 Redis 做快取引擎的時候,快取不更新的問題RustRedis快取
- Android截圖和指定View生成截圖分享AndroidView
- 【TRUNC】使用TRUNC函式完成對時間的擷取函式
- android之截圖(包括擷取scrollview與listview的)AndroidView
- Android三種方式擷取任意介面螢幕Android
- javascript擷取指定長度字串後面加點程式碼例項JavaScript字串
- C#擷取指定長度中英文字串方法C#字串
- 前端字型擷取前端
- PHP字串擷取PHP字串
- Dockerfile生成映象的時候是如何快取的?Docker快取
- List,Map在遍歷的時候removeREM
- .NET CORE在publish的時候去掉pdb