添加文本到android drawable xml

时间:2017-08-10 19:06:02

标签: android xml

我正在尝试使用android drawable xml。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item android:drawable="@color/colorPrimary"/>
    <item>
        <bitmap
            android:src="@drawable/ic_logo_black"
            android:gravity="center"/>
    </item>
    <Text is it possible to insert some text here???/>
</layer-list>

出于品牌推广的目的,我想在这个xml中插入一些文字。 (如果文本被翻译,对我来说并不重要。我只是想要它,这样每当我使用这个可绘制的xml时,在我指定的区域中插入了一些文本)

这甚至可能吗?我可以将文本/字符放在drawable.xml中吗?是我修改图像并以这种方式添加文本的唯一方法吗?

由于

4 个答案:

答案 0 :(得分:3)

很遗憾,你不能这样做,这里有更多Refer

答案 1 :(得分:2)

是的,如果您只想在按钮内放置一些文本,可以使用带有背景设置的TextView。

可绘制资源

<?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/action_map_icon_on_v2" android:state_pressed="true"/>
  <item android:drawable="@drawable/action_map_icon_on_v2" android:state_selected="true"/>
  <item android:drawable="@drawable/action_map_icon_off_v2"/>
</selector>

布局文件

<TextView
            android:id="@+id/action_map"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:paddingTop="5dp"
            android:textSize="12sp"
            android:textStyle="bold"
            android:textAlignment="center"
            android:text="MAP"
            android:background="@drawable/action_map_button"
/>

答案 2 :(得分:1)

嗨,这个链接可能对你有帮助

https://stackoverflow.com/a/60523334/6494118

无论您在何处尝试添加 Drawable,都可以使用此方法。

private Drawable getCircleDrawableWithText(Context context, String string) {

    Drawable background = ContextCompat.getDrawable(context, R.drawable.circle_yellow);
    Drawable text = CalendarUtils.getDrawableText(context, string, null, android.R.color.white, 12);
    Drawable[] layers = {background, text};

    return new LayerDrawable(layers);
}

形状或背景的资源文件您可以使用以下代码。您可以用不同的形状替换它。可绘制文件 circle_yellow 将在下方,给出圆形的形状。

     <?xml version="1.0" encoding="utf-8"?>
     <shape
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:shape="oval">

     <solid
         android:color="@color/yellow"/>

     <size
       android:width="120dp"
        android:height="120dp"/>
     </shape>

答案 3 :(得分:0)

这个家伙显然设法创建了带有文本的可绘制矢量。但我不知道怎么做:

How to access or translate text in Vector Drawables

也许他使用了Inkscape option to turn text to path。明天我会更深入地研究它。