20

我有一个设计需要像下图一样的背景作为右侧的数字。我们可以在 Android 中实现这一点吗?

在此处输入图像描述

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

4

3 回答 3

37

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

<?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>

您可能需要进行一些调整。您甚至可以丢弃 theLinearLayout并将 the设置android:backgroundTextView@drawable/rounded_edges

于 2013-01-13T11:46:32.127 回答
4

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

<?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

谢谢。

于 2013-01-13T11:49:15.710 回答
0

我知道这是一个老问题,但对于任何为此苦苦挣扎的人,我强烈推荐ViewBadger 库

于 2013-10-29T16:13:52.313 回答