首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用可绘制向量资源从imageview获取位图

使用可绘制向量资源从imageview获取位图
EN

Stack Overflow用户
提问于 2017-10-10 07:39:31
回答 2查看 459关注 0票数 0

我想从图像视图中获取位图,但位图的质量不好。没有旋转或"setRotation“的质量很好,但当我使用"setRotationX”或"setRotationY“或相机旋转时,位图质量会下降。这个问题是当我将"setImageResource“设置为可绘制的向量时,jpeg或png图像没有这个问题。我认为这是一个关于矢量绘图的错误...

这是我用来获取位图的代码:

代码语言:javascript
运行
复制
itemBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(itemBitmap);
cv.save();
imageView.draw(canvas);
cv.restore();
EN

回答 2

Stack Overflow用户

发布于 2017-10-10 09:48:10

如果您尝试从imageView获取位图,则位图的质量更有可能降低。如果图像被旋转,它的质量会更差,因为位图需要缩小。

您可以尝试以下操作:

  • 将矢量资源直接转换为位图,并使用矩阵或一些库进行旋转。或者,
  • 关闭硬件加速。或者,在Bitmap bitmap = imageView.getDrawingCache();

之后使用

  • 使用imageView.setDrawingCacheEnabled(false);
票数 0
EN

Stack Overflow用户

发布于 2017-10-10 19:21:59

请参阅kc Ochibili对问题的回答,地址如下:

How to Get Pixel Colour in Android?

我在我的VectorDrawable上使用了相同的(如下所示)。我给出了代码细节,比如旁白,因为我从我的手机上发布了这篇文章,并且在stackoverflow上的系统不接受缩进的问题。

首先将侦听器附加到视图,如myImageView.setOnTouchListener( View.OnTouchListener(){然后覆盖以下方法: Public boolean onTouch(View view,MotionEvent motionEvent){然后从接收到的视图参数获取IageView ImageView img = ( ImageView )视图;然后在图像视图上执行以下操作: Img.setDrawingCacheEnablef(true);然后从该位图获取位图imgbmp = Bitmap.createBitmap(img.getDrawingCache());Immediately (False) on img。

你得到了位图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46656554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档