Android截图的实现方法
2021/4/13 18:30:46
本文主要是介绍Android截图的实现方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Android实现截图的方式之一:将View对象通过cache机制转化成Bitmap对象
相关API
void setDrawingCacheEnabled(boolean enabled) void buildDrawingCache() // 直接调用了buildDrawingCache(false) void buildDrawingCache(boolean autoScale) Bitmap getDrawingCache() // 直接调用了getDrawingCache(false) Bitmap getDrawingCache(boolean autoScale) // 此方法会判断是否开启了cache,已开启则调用buildDrawingCache方法 void destroyDrawingCache() // 销毁cache,在调用setDrawingCacheEnabled(false)时也会调用此方法
截图的步骤如下
- 获取要截取的View对象。如果是截全屏,首先获取当前Activity,然后通过Activity.getWindow().getDecorView() 获取DecorView对象;
- 调用View.setDrawingCacheEnabled(true) 开启cache;
- 调用View.getDrawingCache() 获取Bitmap对象;
- 通过Bitmap.createBitmap(Bitmap) 拷贝一个步骤3获取到的缓存Bitmap,对拷贝的Bitmap对象进行操作;
- 如果要更新缓存对象的话,需要调用View.destroyDrawingCache() 删除之前缓存的对象。如果不再使用缓存,调用View.setDrawingCacheEnabled(false)(如果跳过步骤4,直接使用步骤3的cache,那么在cache销毁后会报错:java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@f50e14a
参考:http://blog.sina.com.cn/s/blog_726322c80101c0r9.html
这篇关于Android截图的实现方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-18android.permission.read_media_video
- 2024-01-18android_getaddrinfo failed eai_nodata
- 2024-01-18androidmo
- 2024-01-15Android下三种离屏渲染技术
- 2024-01-09Android 蓝牙使用
- 2024-01-06Android对接华为AI - 文本识别
- 2023-11-15代码安全之代码混淆及加固(Android)
- 2023-11-10简述Android语音播报TTS
- 2023-11-06Android WiFi工具类
- 2023-07-22Android开发未来的出路