/**
* 生成视图的预览
* @param activity
* @param v
* @return 视图生成失败返回null
* 视图生成成功返回视图的绝对路径
*/
public static String saveImage(Activity activity, View v) {
Bitmap bitmap;
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "preview.png";
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
bitmap = view.getDrawingCache();
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int[] location = new int[2];
v.getLocationOnScreen(location);
try {
bitmap = Bitmap.createBitmap(bitmap, location[0], location[1], v.getWidth(), v.getHeight());
FileOutputStream fout = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fout);
return path;
} catch (FileNotFoundException e) {
e.printStackTrace();
Logger.e(TAG, "生成预览图片失败:" + e);
} catch (IllegalArgumentException e) {
Logger.e(TAG, "width is <= 0, or height is <= 0");
} finally {
// 清理缓存
view.destroyDrawingCache();
}
return null;
}
Android实现指定控件区域截屏
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 转载注明出处:简书-十个雨点 对屏幕进行截屏并裁剪有两种方式:早截图和晚截图。早截图,就是先截取全屏,再让用户对截...
- 1.普通界面 /** *截图功能 */ -(void)screenShot{ UIGraphicsBeginIma...
- Xamarin XAML语言教程构建ControlTemplate控件模板 控件模板ControlTemplate...
- 今天讲到了万物互联,想到的是物联网和人工智能,我们手机上的各种APP甚至智能手机本身,就是万物互联的红利。 1、无...