如何通过Drawable文件夹中的XML文件为TextView创建背景

时间:2014-01-06 16:21:06

标签: java android

以下是我想要实现的目标。

enter image description here

粗黑色方形线是TextView尺寸的轮廓。圆角广场周围的区域需要完全透明,因此背景可以从TextView所在的布局中显示出来。

我认为这是通过在Drawable文件夹中创建文件来实现的,该文件需要使用strokesolidcorners等类似命令但我不知道从那里去哪里。我无法找到任何有助于此的完整而全面的教程。以下是我开始的地方,但无法进一步发展。

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="@android:color/transparent"/>
    <stroke
        android:width="2dp"
        android:color="#000000"/>
    <corners
        android:radius="8dp" />
</shape>

但这与上面的图片并不相符。我的问题是如何调整上面的代码以获得我想要的图片?

2 个答案:

答案 0 :(得分:1)

试试这个形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient android:endColor="#000000" android:startColor="#000000" />
    <corners 
      android:bottomLeftRadius="8dp"
      android:bottomRightRadius="8dp"
      android:topLeftRadius="8dp"
      android:topRightRadius="8dp" />
</shape>

然后将文本字段设置为:

<TextView 
   android:id="@+id/textView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:background="@drawable/roundedView"
 />

答案 1 :(得分:0)

对于此背景,您必须使用&#39;图层列表&#39;。像:

rounded_shapes.xml:

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

<item>
    <shape>
        <solid android:color="@android:color/white" />

        <stroke
            android:width="1dp"
            android:color="@android:color/black" />
    </shape>
</item>
<item
    android:bottom="5dp"
    android:left="5dp"
    android:right="5dp"
    android:top="5dp">
    <shape>
        <corners android:radius="5dp" />

        <solid android:color="#f46721" />

        <stroke
            android:width="1dp"
            android:color="@android:color/black" />
    </shape>
</item>

</layer-list>

将此drawable(表示layer_list xml)应用于TextView的背景。