【问题标题】:Android bitmap quality issuesAndroid 位图质量问题
【发布时间】:2012-05-12 23:26:08
【问题描述】:

在我的应用程序中,位图的绘制就像颜色是某种低质量类型一样。如果我使用图库应用程序加载背景图像,它加载得很好,看起来不像是超低质量。我用来加载和绘制图像的代码很简单:

//Code for initializing the Bitmap
Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.none), (int) (canvas.getWidth() * compression), (int) (canvas.getHeight() * compression), true);
//...
//Code for drawing this Bitmap
canvas.drawBitmap(bitmap, null, new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), null);

如果代码中没有任何内容告诉您哪里出了问题,我会制作一张图像,比较图像在计算机或其他图像查看器上的实际外观,以及它在应用程序中的外观。

【问题讨论】:

  • 坦率地说,大多数安卓系统的图形输出都是垃圾,我不确定用户是否会抱怨..
  • @ina 也许这很糟糕,因为人们在他们的应用程序中接受了半途而废的解决方案;)。

标签: android bitmap


【解决方案1】:

问题有点类似于Bad image quality after resizing/scaling bitmap

尝试禁用缩放,在屏幕外位图中调整大小并确保位图为 32 位 (ARGB888):

Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inDither = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap source = BitmapFactory.decodeResource(a.getResources(), path, options);

关于图像缩放/处理的另一个好的和完整的答案可以在Quality problems when resizing an image at runtime找到

【讨论】:

  • 请告诉我什么是“a.getResources()”a=?
  • activity::getResources()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多