0

丸みを帯びた EditText を取得しようとしています。

レイアウトの私の EditText は

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp" >

    <EditText
        android:id="@+id/EditTextSearch"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edit_round"
        android:padding="5dip"
        android:singleLine="true" >

        <requestFocus />
    </EditText>

    <ImageView
        android:id="@+id/searchBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:src="@android:drawable/ic_menu_search" />
</FrameLayout>

EditTextの背景として使用しているドローアブルは次のようになります

 <?xml version="1.0" encoding="utf-8"?>
 <!-- res/drawable/rounded_edittext.xml -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:padding="10dp"
 android:shape="rectangle" >

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

<corners
    android:bottomLeftRadius="12dp"
    android:bottomRightRadius="12dp"
    android:topLeftRadius="12dp"
    android:topRightRadius="12dp" />

</shape>

私の XML グラフィカル レイアウトでは、編集テキストはきれいに丸みを帯びているように見えますが、エミュレータやデバイスではそうではありませんか?

なぜそれができるのか誰にも分かりますか?

ありがとう

4

2 に答える 2

1

属性を削除android:padding="10dp"して、ドローアブルを次のように表示します。私はちょうどそれをテストし、パディング属性を削除すると、丸みを帯びた角がうまく表示されます。

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

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

    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

    <corners
        android:bottomLeftRadius="12dp"
        android:bottomRightRadius="12dp"
        android:topLeftRadius="12dp"
        android:topRightRadius="12dp" />

</shape>

に追加paddingするにはShape Drawable、上記のコードに追加された padding 属性に注意してください。

証拠はプリンにあります: ;-)

デバイスのスクリーンショット:

ここに画像の説明を入力

エミュレータのスクリーンショット:

ここに画像の説明を入力

于 2013-02-06T11:51:23.487 に答える
0

要素を提供していないためstroke、背景が表示されない可能性があります (背景は白い塗りつぶしに過ぎないためです!)。背景を変更したり、ストロークを追加したりすると、それが表示されるはずです。

追加:

<stroke android:width="2dp" android:color="#000000" />

そして、ふふっ!四角形が表示されます:)ところで、パディングは問題ではありません-単に無視されます。

于 2013-02-06T11:59:17.313 に答える