Android自动截图生成缩略图

Android自带屏幕截图功能,截图面向所有视图,我门可以从其他控件或布局那里截图下来,然后显示在ImageView上面。

使用截图功能必须通过代码完成,相关方法如下:

  • setDrawingCacheEnabled:设置绘图缓存的可用状态
  • isDrawingCacheEnabled:判断控件的绘图缓存是否可用
  • setDrawingCacheQuality:设置绘图缓存的质量
  • getDrawingCache:获取该控件的绘图缓存结果,返回一个Bitmap类型的值
  • setDrawingCacheBackgroundColor:设置绘图缓存的背景颜色,不设置则默认为黑色,通常设为白色

步骤:

  1. 开始截图前,先调用setDrawingCacheEnabled方法开启绘图缓存
  2. 调用getDrawingCache方法获取缓存中的Bitmap数据
  3. 完成截图,延迟若干毫秒后调用setDrawingCacheEnabled关闭绘图缓存,如果还需截图,就再次调用该方法重新开启

实例代码:

先添加一个TextView控件和一个ImageView控件,在代码中绑定,开启TextView的绘图缓存。

截图功能代码如下:

Bitmap bitmap = textView.getDrawingCache();
imageView.setImageBitmap(bitmap);
//截图后不能马上关闭缓存,因为界面渲染需要时间,如果立即关闭会报错
//java.lang.IllegalArgumentException:Cannot draw recycled bitmaps
mHandler.postDelayed(mResetCache,200);

handler代码:

private Handler mHandler = new Handler();
private Runable mResetCache = new Runnable(){
    @Override
    public void run(){
        textView.setDrawingCacheEnabled(false);
        textView.setDrawingCacheEnabled(true);
    }
};

猜你喜欢

转载自blog.csdn.net/lllx9464/article/details/79540962
今日推荐