1

我遇到了 9patch 图像的问题。布局设置为 50dp,背景为 9patch,但在小屏幕上加载时布局大于 50dp。

但是,我有另一个具有相同 9patch 背景(menuBtn)的布局,并且没有扩展,所以我不确定是什么导致 9patch 在这个布局上行为不端。

不锈钢:
在此处输入图像描述

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