android 9-patch图形在图像视图中不缩放

时间:2011-03-09 08:00:49

标签: android imageview nine-patch

我有

<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageView android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:id="@+id/ImageView01"
        android:src="@drawable/phone80"></ImageView>
    <ImageView android:id="@+id/ImageView02"
        android:layout_height="wrap_content" android:src="@drawable/underline"
        android:layout_width="fill_parent" android:layout_gravity="fill_vertical|fill_horizontal"></ImageView>
</LinearLayout>

第一张图像是固定大小的图像,根本不应缩放。它的右侧图像应水平缩放到最大空间。源指向有效的.9.png文件。不幸的是,它总是只显示其原始大小。我必须设置什么属性? ImageView是否是正确的对象?

谢谢, 甲

4 个答案:

答案 0 :(得分:52)

只需将android:scaleType="fitXY"添加到ImageView即可。例如myimage.9.png:

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/myimage"
    android:scaleType="fitXY" />

答案 1 :(得分:22)

请改用android:background。如果它只是一个下划线,您可以使用View而不是ImageView。至于填充屏幕的其余部分,您可能希望改为使用TableLayout

另外,请确保您的9补丁正确无误。 1px边必须是黑色的。 #000

答案 2 :(得分:1)

同时检查以确保两侧的刻度线不会一直延伸到图像的角落。我知道那里有黑色像素并没有多大意义,但我认为Android会忽略它们,但它实际上阻止了缩放工作。它还会在输出窗口中显示“ERROR:9-patch image xxx.9.png malformed”消息,但您可能没有注意到这一点。我一拿出角落里的像素就开始为我工作了。

答案 3 :(得分:0)

尝试使用setImageResource(9patchResourceID)而不是setImageBitmap或setImageBackground,它可以工作:)