这篇文章主要为大家详细介绍了Android截取指定View为图片的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android截取指定View为图片的具体代码,供大家参考,具体内容如下
这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的!
如图所示,我需要截取整个LinearLayout的内容,多余的内容全部都要去掉!
//诺,主要观察这两个方法
/**
* 压缩图片
*
* @param bgimage
* @param newWidth
* @param newHeight
* @return
*/
public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
// 获取这个图片的宽和高
float width = bgimage.getWidth();
float height = bgimage.getHeight();
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 计算宽高缩放率
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// 缩放图片动作
//matrix.postScale(scaleWidth, scaleHeight);//TODO 因为宽高不确定的因素,所以不缩放
Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
(int) height, matrix, true);
return bitmap;
}
/**
* 截取指定View为图片
*
* @param view
* @return
* @throws Throwable
*/
public static Bitmap captureView(View view) throws Throwable {
Bitmap bm = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
view.draw(new Canvas(bm));
return bm;
}
其实很简单,就是首先获取View的宽高,然后设置bitmap格式,最后生成一张Bitmmap对象,然后在绘制出来,就这么个道理!
//这个是使用逻辑
Bitmap bitmap = null;
try {
bitmap = captureView(mShareBackgroundSign);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
UMImage umImage = null;
umImage = new UMImage(getActivity(), zoomImage(bitmap, 720, 1280));
new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN)
.withText(content)
.withMedia(umImage)
.share();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Android截取指定View为图片的实现方法


猜你喜欢
- Android studio实现动态背景页面 2023-05-23
- Android MaterialButton使用实例详解(告别shape、selector) 2023-06-16
- iOS 对当前webView进行截屏的方法 2023-03-01
- 详解flutter engine 那些没被释放的东西 2022-12-04
- Flutter实现底部和顶部导航栏 2022-08-31
- SurfaceView播放视频发送弹幕并实现滚动歌词 2023-01-02
- Android实现监听音量的变化 2023-03-30
- 作为iOS开发,这道面试题你能答出来,说明你基础很OK! 2023-09-14
- 最好用的ios数据恢复软件:PhoneRescue for Mac 2023-09-14
- Android实现轮询的三种方式 2023-02-17