canvas.drawText更改了paint对象的反别名标志,这是一个Android bug吗?

时间:2013-04-29 18:35:35

标签: android android-canvas

我的应用程序中有一个奇怪的错误,Paint.measureText(String text)在我看来它应该返回相同的值时返回一个不同的答案。最后,当我使用Paint对象绘制文本时,我将其跟踪到ANTI_ALIAS_FLAG被更改,即

Paint text_paint = new Paint(); 
text_paint.setStyle(Paint.Style.FILL);
text_paint.setTextSize(50);
text_paint.setColor(Color.BLACK);    
Log.d("MyApp","AA1="+text_paint.isAntiAlias());
canvas.drawText("SomeText", 10, 10, text_paint);
Log.d("MyApp","AA2="+text_paint.isAntiAlias());

使用Android版本4.2.1生成日志输出

04-29 19:30:00.702: D/MyApp(18806): AA1=false
04-29 19:30:00.707: D/MyApp(18806): AA2=true

measureText的结果取决于此ANTI_ALIAS_FLAG。所以我的问题是

  1. 这是什么ANTI_ALIAS_FLAG,是什么决定了人们选择将其设置为true还是false?
  2. 在我看来,像{{1}这样的调用不应该改变正在使用的paint对象,那么究竟是什么,这是一个bug吗?

0 个答案:

没有答案