/**
* 生成视图的预览
* @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实现指定控件区域截屏
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 转载注明出处:简书-十个雨点 对屏幕进行截屏并裁剪有两种方式:早截图和晚截图。早截图,就是先截取全屏,再让用户对截...
- 1.普通界面 /** *截图功能 */ -(void)screenShot{ UIGraphicsBeginIma...
- Xamarin XAML语言教程构建ControlTemplate控件模板 控件模板ControlTemplate...
- 今天讲到了万物互联,想到的是物联网和人工智能,我们手机上的各种APP甚至智能手机本身,就是万物互联的红利。 1、无...