【发布时间】:2011-01-30 22:50:24
【问题描述】:
这是一个Surface View和View中抗锯齿的测试项目,
在视图中:(它非常适合抗锯齿)
@Override
protected void onDraw(Canvas canvas) {
Paint p = new Paint();
p.setColor(Color.WHITE);
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
canvas.drawColor(Color.BLACK);
Matrix mMatrix = new Matrix();
mMatrix.postScale(0.34f, 0.34f);
canvas.drawBitmap(mBitmap, mMatrix, p);
canvas.drawText("View Anti alias", 100, 300, p);
}
在表面视图中:(丑陋 -_-!!)
public void doDraw(Canvas canvas) {
Paint p = new Paint();
p.setColor(Color.WHITE);
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));
canvas.drawColor(Color.BLACK);
Matrix mMatrix = new Matrix();
mMatrix.postScale(0.34f, 0.34f);
canvas.drawBitmap(mBitmap, mMatrix, p);
canvas.drawText("Surface View Anti alias", 100, 300, p);
}
你可以从这里下载源代码: http://sharpidea.co.cc/GifViewTest.rar
谁能告诉我如何在surfaceView中消除别名?
【问题讨论】:
-
在surfaceHolder.lockCanvas() 画布上使用drawPath() 时遇到类似问题。在画布上尝试了各种 Paint 组合和 setDrawFilter()。如果您找到解决方案,请对此进行更新。
标签: android antialiasing surfaceview