尝试使用android在同一个地方绘制多次时出现反别名问题Canvas.
首先,我正在初始化paint = new Paint(Paint.ANTI_ALIAS_FLAG),然后设置中风上限Paint.Cap.ROUND.
然后,如果我调用canvas.drawPoint(x, y, paint)一次导致以下结果:
canvas.drawPoint(x, y, paint)多次调用(本例中为100)会导致:
我创建了一个使用最少代码的例子来在GitHub上运行它:android-canvas-antialias
我注意到如果我绘制一定距离的点,反别名似乎按预期工作(第一张图像).但是用很小的偏移量绘制它会导致相同的抗锯齿问题(第二张图像).
在同一地点绘制点时,是否需要进行任何设置才能使其工作?或者我可能不是在同一个地方画画(或者偏移很少)?
编辑:真正的问题是因为我正在尝试绘制宽度可变线段.请参阅MainActivity.drawSegmenton git存储库.
我Activity的EditText定义如下:
<EditText
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:digits="0123456789.:"
/>
Run Code Online (Sandbox Code Playgroud)
允许的输入应该是.,:和numbers.但是如果在EditText空时键入不允许的char,则文本开始重复.
例如,假设EditText为空,请键入以下序列:abc123.
在我的设备上结果是1112123,但预期结果应该是正确的123.
因为这应该尽可能简单,我不想使用InputFilter.