我正在扩展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。
画布具有水平条纹效果,实际上非常重要。这种效果也是垂直的。只要梯度略有变化,就会发生这种情况。仿佛画布'位图的颜色要少得多..
我确定有解决方案,但我找不到。
答案 0 :(得分:1)
看起来像颜色量化。 SurfaceView的默认颜色格式是16位RGB_565。在onCreate()
上将其更改为32位:
mSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
(Some examples使用PixelFormat.TRANSLUCENT
。)