我在使用canvas.drawText()方法时遇到了问题。
我有一个自定义视图,如下所示:
public class PagerIndicator extends View
{
@Override
public void onDraw(Canvas canvas)
{
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GRAY);
canvas.drawPaint(paint);
paint.setColor(Color.WHITE);
paint.setTextSize(10);
paint.setAntiAlias(true);
paint.setTextAlign(Align.LEFT);
canvas.drawText("TEST", 0, 0, paint);
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ysi.crm.PagerIndicator
android:id="@+id/swipe_page_indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
drawPaint()方法 正常工作,我可以在测试时看到灰色颜料。但是,canvas.drawText()不是绘图。我看到灰色顶部没有文字。
我已经把这件事打败了,我找不到其他人有这个问题,更不用说解决方案了。我会非常感谢任何帮助。
答案 0 :(得分:8)
因此,您的文字可能会被绘制在视图顶部之上。
答案 1 :(得分:1)
试试这个:
public class PagerIndicator extends View
{
@Override
public void onDraw(Canvas canvas)
{
Paint paint1 = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GRAY);
canvas.drawPaint(paint1);
Paint paint2 = new Paint();
paint2.setColor(Color.WHITE);
paint2.setTextSize(10);
paint2.setAntiAlias(true);
paint.setTextAlign(Align.LEFT);
canvas.drawText("TEST", 0, 0, paint2);
}
答案 2 :(得分:1)
更改此行:
canvas.drawText("TEST", 0, 0, paint2);
到:
canvas.drawText("TEST", 100, 100, paint2);