37

テキストビューに円の背景を入れたい。レンダリングすると、円は楕円形になります。

私のレイアウトXML:

    <TextView
        android:id="@+id/amount_key"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_marginRight="2dp"
        android:gravity="center"
        android:background="@drawable/circle"
        android:layout_marginLeft="20dp"
        android:text="3\ndays"
        android:padding="20dp"
        android:textColor="#ffffff"
        android:textStyle="bold"
        android:textSize="25dp" />


</LinearLayout>

私のサークルの背景:

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">

            <solid 
               android:color="#79bfea"/>
</shape>
4

6 に答える 6

49
  • とを に変更しtextViewますlayout_heightlayout_widthwrap_content
  • 次のように形状タグ内にサイズタグを追加します
<shape 
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">> 
<solid android:color="#79bfea" />
<size android:height="25dp"
   android:width="25dp"/>
</shape>

それでも楕円形の場合は、サイズ タグの幅と高さを増やしてみてください。それは私のために働いた!

于 2014-07-16T10:11:43.547 に答える
9

これを取得するには

ここに画像の説明を入力

2 つの LinearLayout を相互に使用し、親の重力を CENTER に設定しました

<LinearLayout
android:layout_width="80dp"
android:layout_height="50dp"
android:baselineAligned="false"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:gravity="center"
    android:background="@drawable/oval"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Text"
        android:textSize="12sp" />
</LinearLayout>
</LinearLayout>

これは drawable フォルダー内の oval.xml です

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#393939" />
    <size
        android:width="40dp"
        android:height="40dp" />
</shape>

内側の LinearLayout がなければ、これが得られます

ここに画像の説明を入力

それはコードです

<LinearLayout
android:layout_width="80dp"
android:layout_height="50dp"
android:baselineAligned="false"
android:gravity="center"
android:background="@drawable/oval"
android:orientation="vertical">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Text"
    android:textSize="12sp" />
</LinearLayout>
于 2015-11-18T23:03:36.303 に答える
-3

楕円形の代わりにリングを試してください

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring" >

    <solid android:color="#79bfea" />
</shape>
于 2013-09-28T04:18:02.680 に答える