在我的程序中,我试图绘制像素艺术,不希望发生抗锯齿.我找到了为Bitmaps和DrawableBitmaps禁用抗锯齿的方法,但没有为Drawables禁用抗锯齿.是否无法为Drawables禁用抗锯齿?
我尝试过以下方法:
drawable.setDither(false);
drawable.setFilterBitmap(false);
Run Code Online (Sandbox Code Playgroud)
正如vmironov所建议的,我试图删除画布上的任何过滤,如下所示:
DrawFilter filter = new PaintFlagsDrawFilter(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG, 0);
Canvas canvas = surfaceHolder.lockCanvas();
canvas.setDrawFilter(filter);
Run Code Online (Sandbox Code Playgroud)
这有一个奇怪的效果,删除我的东芝Thrive上的抗锯齿,但不是我的Galaxy Nexus.
任何见解都表示赞赏.
您可以Canvas使用PaintFlagsDrawFilter和禁用整个抗锯齿Canvas.setDrawFilter(DrawFilter filter):
final DrawFilter filter = new PaintFlagsDrawFilter(Paint.ANTI_ALIAS_FLAG, 0);
final Canvas canvas = ...;
canvas.setDrawFilter(filter);
Run Code Online (Sandbox Code Playgroud)
更新:
我看了截图,我可以肯定地说这不是一个消除锯齿的问题.你看到的是一个结果,bilinear filtration不幸的是它不能被禁用硬件加速视图.作为一种解决方法,您只需对视图使用软件光栅化:
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |