android - 无法将文本绘制到自定义 View

标签 android android-layout

我在使用 canvas.drawText() 方法时遇到问题。

我有一个自定义 View ,如下:

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() 并未绘制。我在灰色上方看不到任何文字。

我已经把这个东西打死了,我找不到其他人有这个问题,更不用说解决方案了。如果有任何帮助,我将不胜感激。

最佳答案

我以前遇到过这个。您设置用于绘制的坐标不是文本的左上角坐标。它是文本的左下角坐标。

因此,您的文本可能绘制在 View 顶部上方。

关于android - 无法将文本绘制到自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673589/

相关文章:

java - Android java - 将字符串 "2013/12/17"正确转换为UNIX的时间戳

android - 如何在android中向饼图添加背景文本?

android - ScrollView,我无法滚动查看内容的顶部

android - 错误 :Failed to complete Gradle execution. 原因:未知的命令行选项 '-X'

android - 使用实体类设计模式在 Android Studio 中生成 Cloud Endpoint 客户端库

android - 获取 `java.lang.AssertionError: java.lang.NoSuchFieldException: HTTP_1_0`

android - Firebase Analytics + Android 应用(未上市)

java - 客户端-服务器安全和身份验证

android - android :targetSdkVersion is 16 时的操作栏行为

android - 如何通过后按完美处理底部导航