1

9patch イメージに問題があります。レイアウトは 9 パッチの背景で 50 dp に設定されていますが、小さな画面に読み込まれると、レイアウトは 50 dp よりも大きくなります。

ただし、同じ 9 パッチの背景 (menuBtn) を持つ別のレイアウトがあり、それは展開されないため、この 1 つのレイアウトで 9 パッチの誤動作を引き起こしている原因がわかりません。

SS:
ここに画像の説明を入力

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:padding="0dp"
    android:background="@drawable/actionbar">
    <RelativeLayout
        android:id="@+id/menuBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/actionbar"
        android:clickable="true">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/actionbar_menu"/>
    </RelativeLayout>
    <ImageView
        android:id="@+id/div1"
        android:layout_width="1px"
        android:layout_height="50dp"
        android:layout_toRightOf="@id/menuBtn"
        android:src="@drawable/actionbar_divider"/>
</RelativeLayout>

9パッチ画像:
ここに画像の説明を入力

4

1 に答える 1

3

それを理解しました、それは奇妙なバグですか?とにかく、9patchは小さい画面サイズで50dpよりも高いので、ベースの背景がアクションバーに設定されていると、拡大縮小されません。

ただし、メインのRelativeLayout内に別のRelativeLayoutをネストし、その背景をアクションバーに設定すると、適切にスケーリングされます。元のRelativeLayoutが機能しない理由がわかりません。

例:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:padding="0dp">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:padding="0dp"
        android:background="@drawable/actionbar">
    </RelativeLayout>
</RelativeLayout>

このコードは機能するので、ええ...

于 2012-10-17T14:46:31.017 に答える