2013-01-13 149 views
14

我有一個設計,需要在右邊的數字下面的圖像的背景。有什麼我們可以在Android中實現這一點?Android TextView背景

enter image description here

我將需要做一個9修補圖像,並將其設置爲背景?

+0

如果你的文本是不是要去固定的寬度,你一定需要使用9patch ... – yahya

回答

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並將TextViewandroid:background設置爲@drawable/rounded_edges

+0

謝謝你,我會嘗試它馬上回到你身邊。如果將其分配給textview。我需要填充填充嗎? –

+0

取決於。如果你的文字被切角,你應該給一些填充。 –

+4

'android:radius =「5px」'。爲什麼不'5dp'? –

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> 

然後在你的佈局引用此繪製:

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

感謝。

+0

@Harsha M V看我的編輯我也添加了一個很好的參考鏈接。 –

+0

在文本視圖或形狀中添加填充是否是一種好的做法? –

+1

@HarshaMV是在大多數情況下。由於形狀會在textview空間中生效,因此您的文字可能會在此處被切斷。這是填充填充的唯一原因。 –

0

我知道這是一個老問題,但任何人誰與此格格不入,但我強烈建議ViewBadger library