9patch图像不起作用

时间:2013-12-08 23:05:28

标签: java android nine-patch

我有一组四个9patch图像我想用于一个按钮(ldpi到xhdpi)。它通常出现在eclipse中的UI设计器上,但在模拟器和我的Android设备上,它将图像拉伸为好像不是9patch。

图片(我最多只发布两个链接,抱歉):

LDPI http://i.stack.imgur.com/c2D6s.png

MDPI http://i.stack.imgur.com/G7ZzG.png

hdpi(已达到链接限制,抱歉)

xhdpi(已达到链接限制,抱歉)

这是按钮XML:

<Button
    android:id="@+id/button1"
    style="@style/loginstyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/imageView2"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_alignRight="@+id/imageView1"
    android:layout_marginBottom="97dp"
    android:onClick="onLogin"
    android:padding="0dp"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    android:text="Login"
    android:textColor="#fff" />

这是我的样式代码:

<style name="loginstyle">
<item name="android:background">@drawable/loginbuttondr</item>
</style>

这是我的drawable xml(loginbuttondr.xml):

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/loginbutton"/>
</selector>

图像集名为loginbutton.9.png

解决方案:感谢@MoshEsran。问题是我没有在图像中添加填充指南(右侧和底侧)。

2 个答案:

答案 0 :(得分:1)

问题可能是你的补丁线颜色不是纯黑色。

您必须使用#000000,但是,目前您正在使用#101a05

答案 1 :(得分:0)

9Patch图像旨在可伸缩。这是他们的功能。 如果按钮看起来不像你想要的那样,则可能是;

a)您的按钮布局XML对于您想要实现的目标是不正确的(将其添加到您的问题中以便我们查看)。

b)您没有以适合您设备的分辨率提供9Patch图像。