我想创建一个看起来像这样的drawable。
和
我知道如何创建图像背景,但即使在搜索之后,我也无法找到如何为该可绘制文件提供文本。有没有什么方法可绘制文件也完全相同,包含文本?
我不能使用textview,因为它是一个标签,我需要drawables来设置为背景资源(这就是我所知道的,如果我错了,请纠正我。)。所以我想要一个可绘制的文件,我可以将其设置为背景。
答案 0 :(得分:1)
是的,你可以做到。
查看帖子 -
How to put text in a drawable ?
基本上,您必须扩展类Drawable
并设置画布以绘制文本
一个可绘制的。
当您覆盖draw
方法时,它会占用画布并在定义的位置上绘制文本。
Canvas
有许多方法可用。
如图形文档中所述。 -
Canvas类有自己的一套绘图方法,你可以使用, 比如drawBitmap(...),drawRect(...),drawText(...)等等。 您可能使用的其他类也有draw()方法。对于 例如,您可能有一些您想要的Drawable对象 放在画布上。 Drawable有自己的draw()方法,需要你的 画布作为参数。
绘图文字将如下所示 -
canvas.drawText("Front Screen Torch", 30, 48, paint);
直接从资源中获取实际颜色 -
paint.setColor(getResources().getColor(R.color.black));
有关详情,请参阅Canvas。
答案 1 :(得分:0)
是的,您可以做更多,有了画布的这种控制,我将使用“很多”来完全控制可绘制对象
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;
}
答案 2 :(得分:-1)
不,你不能。我们可以在drawable中添加文字吗?
替代选项是使用Text创建一个drawable。