簡體   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