Android Canvas DrawBitmap质量差

时间:2016-05-05 00:07:54

标签: android android-canvas surfaceview android-bitmap

我正在扩展SurfaceView以创建全屏水平滚动背景。

我的问题在于位图的质量。在draw-call中用作

canvas.drawBitmap(bitmap, 0, 0, paint);

它的质量比原来差很多。我没有做任何缩放。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image, options);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setFilterBitmap(true);

不确定图片是否清晰显示,他们是平板电脑的截图。好的是一个ImageView,其src为drawable。

画布具有水平条纹效果,实际上非常重要。这种效果也是垂直的。只要梯度略有变化,就会发生这种情况。仿佛画布'位图的颜色要少得多..

我确定有解决方案,但我找不到。

Poor quality example

Real quality example

1 个答案:

答案 0 :(得分:1)

看起来像颜色量化。 SurfaceView的默认颜色格式是16位RGB_565。在onCreate()上将其更改为32位:

mSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);

Some examples使用PixelFormat.TRANSLUCENT。)