操纵drawable

时间:2016-10-19 08:15:42

标签: android android-layout textview android-drawable

我想将一些Drawable作为TextView的背景。 TextView长度会有所不同,我希望Drawable可以使用TextView进行扩展。我将Drawable设置为TextView的背景,但它看起来很奇怪。

这是我的TextView:

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/background"
    android:textColor="#ffffff"
    />

这是我的@ drawable / background。它只是一个圆形矢量:

<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0"
    >

    <path
        android:fillColor="#80000000"
        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2z"
        />

</vector>

enter image description here enter image description here

我希望drawable可以使用TextView长度进行扩展(它可能有多行)但保持边缘的形状(圆角)。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

按以下方式创建可绘制的形状:

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

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

    <padding android:top="@dimen/margin_vsmall" android:bottom="@dimen/margin_vsmall" android:left="@dimen/margin_small" android:right="@dimen/margin_small" />

    <corners
        android:radius="@dimen/radius" />

</shape>

并将textview应用于背景android:background="@drawable/yourshapedrawable

根据需要调整半径和填充。

答案 1 :(得分:0)

您可以在TextView上添加一些填充

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:padding="10dp"
android:textColor="#ffffff"
/>