Android TextView背景

时间:2013-01-13 11:41:15

标签: android textview

我的设计要求右侧的数字背景如下图所示。我们可以在Android中实现这一目标吗?

enter image description here

我是否需要制作9个补丁图像并将其设置为背景?

3 个答案:

答案 0 :(得分:31)

首先,创建一个圆角的形状。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <corners android:radius="5px"/>
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape>

然后将此作为背景应用于您的视图:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/rounded_edges">
    <TextView 
        android:id="@+id/mytext"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:text="blah blah blah blah"
        android:padding="6dip"
        android:textColor="#000000" />
</LinearLayout>

您可能需要做一些调整。您甚至可以放弃LinearLayout并将android:background的{​​{1}}设置为TextView

答案 1 :(得分:3)

首先创建一个可绘制的资源。

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_textview.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
 <solid android:color="#cccccc"/>
    <corners
     android:bottomRightRadius="15dp"
     android:bottomLeftRadius="15dp"
  android:topLeftRadius="15dp"
  android:topRightRadius="15dp"/>
</shape>

然后在你的布局中引用这个drawable:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dip"
    android:gravity="center"
    android:background="@drawable/rounded_textview" />
</LinearLayout>

其中一个很好的参考资料:

TextView with rounded corners

感谢。

答案 2 :(得分:0)

我知道这是一个老问题,但对于任何与此斗争的人,我强烈建议ViewBadger library