繁体   English   中英

我们可以在绘图中添加文字吗?

[英]Can we add text to a drawable?

我想创建一个看起来像这样的可绘制对象。

在此处输入图片说明 在此处输入图片说明

我知道如何创建图像背景,但是即使经过搜索,也无法找到如何向该可绘制文件提供文本。 有没有办法使可绘制文件与包含文本的文件完全相同?

我不能使用textview,因为它是一个选项卡,我需要将drawable设置为背景资源(这就是我所知道的,如果我错了,请更正我。)。 所以我想要一个可以设置为背景的可绘制文件。

在此处输入图片说明

是的,你可以这样做。

看到帖子 -

如何将文本放入可绘制对象中?

基本上,您必须扩展Drawable类并将画布设置为将文本绘制为可绘制对象。

当您覆盖draw方法时,它将获取画布并在定义的位置上绘制文本。

Canvas有很多可用的方法。

如图形文档中所述。 --

Canvas类具有自己可以使用的一组绘制方法,例如drawBitmap(...),drawRect(...),drawText(...)等。 您可能使用的其他类也具有draw()方法。 例如,您可能要在画布上放置一些Drawable对象。 Drawable有其自己的draw()方法,该方法将Canvas作为参数。

绘图文字将如下所示-

canvas.drawText("Front Screen Torch", 30, 48, paint);

要直接从资源中获取实际颜色,请使用-

paint.setColor(getResources().getColor(R.color.black));

有关更多信息,请参见画布

是的,您可以做更多,有了画布的这种控制,我可以使用“很多”来完全控制可绘制对象

public static Drawable getTextDrawable(@ColorInt int iColor) {
 Shape shape = new Shape(){

        @Override
        public void draw(Canvas canvas, Paint paint)
        {
            paint.setColor(Color.BLUE);

            paint.setTextSize(100);

            int radii = dpToPx(3);

            canvas.drawText("Hello Canvas", canvas.getWidth() - 150, canvas.getHeight() / 2, paint);

            canvas.drawCircle(canvas.getWidth() - radii * 2, canvas.getHeight() /2 - radii, radii, paint);
        }
    };
    shape.getHeight();

    Drawable drawable = new ShapeDrawable(shape);

    return drawable;
}

我们可以将文本添加到可绘制对象吗?

不,你不能。

替代选项是使用Text创建可绘制对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM