亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

android搞個截圖

標簽:
Android

实现

1.单个view的截图
2.webview的截长图
3.scrollView的截图
4.截屏

1.单个View的截图

View.getDrawingCache

通过view的cache来获取view的截图

view.setDrawingCacheEnabled(true);//开启view缓存view.buildDrawingCache();//通知view生产绘图缓存Bitmap bitmap = view.getDrawingCache();//获取view的截图view.setDrawingCacheEnabled(false);
view.destroyDrawingCache();//销毁缓存

2.webview的截图

mWebView.capturePicture()

重点是webView的capturePicture()方法

Picture snapShot = mWebView.capturePicture();//传入webview对象final Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(), 
    Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);

3.scrollView的截图

scrollView的截图比较特殊,因为他存在长图;

如果我们仍然使用第一种方法来获取截图,我们会碰到 超出缓存的警告 (View too large to fit into drawing cache)

在这时候,scrollview的getheight()高度是子view的实际高度,而子view还没完全显示,他的高度是大于屏幕高度的,所以会提示超出缓存。

public static Bitmap shotScrolleView(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(view.getHeight(), View.MeasureSpec.EXACTLY));
     view.layout((int) view.getX(), (int) view.getY(), (int) view.getX() + view.getMeasuredWidth(), (int) view.getY() + view.getMeasuredHeight());
    view.draw(canvas);    return bitmap;
}

4.截屏

截屏原理和方法一类似,重点是获取到decorView,然后使用和方法一样

public void screenShot(Activity activity) {
    View dView = activity.getWindow().getDecorView();//重点
    dView.setDrawingCacheEnabled(true);
    dView.buildDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(dView.getDrawingCache());
    saveToLocal(bitmap,"screenshot.jpeg");
}



作者:space0o0
链接:https://www.jianshu.com/p/39f674af186b


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消