我想从图像视图中获取位图,但位图的质量不好。没有旋转或"setRotation“的质量很好,但当我使用"setRotationX”或"setRotationY“或相机旋转时,位图质量会下降。这个问题是当我将"setImageResource“设置为可绘制的向量时,jpeg或png图像没有这个问题。我认为这是一个关于矢量绘图的错误...
这是我用来获取位图的代码:
itemBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(itemBitmap);
cv.save();
imageView.draw(canvas);
cv.restore();发布于 2017-10-10 09:48:10
如果您尝试从imageView获取位图,则位图的质量更有可能降低。如果图像被旋转,它的质量会更差,因为位图需要缩小。
您可以尝试以下操作:
Bitmap bitmap = imageView.getDrawingCache();之后使用
imageView.setDrawingCacheEnabled(false);发布于 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。
你得到了位图。
https://stackoverflow.com/questions/46656554
复制相似问题