9补丁背景渲染与工件和裁剪

时间:2013-07-20 00:42:30

标签: android android-studio nine-patch

我使用9补丁文件作为按钮背景,而draw9patch工具验证文件,在Android Studio中它渲染了工件和裁剪。我不确定这是Android Studio中的错误还是9补丁中的错误。如果有帮助,这是按钮的代码。

<ImageButton
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:id="@+id/imageButton"
            android:layout_weight="1"
            android:src="@drawable/tool_panel_share_icon_default"
            android:baselineAlignBottom="true"
            android:background="@drawable/view_type_button_background_left_default"
            android:scaleType="fitCenter"
            />

这是我的9补丁:

9-patch file

这就是我认为它应该在按钮上的样子:

enter image description here

但这正是我实际得到的(底线是在黑暗背景下透明度为26%):

enter image description here

你可以看到左边有一条错误的黑线,应该在右边的黑线显然被裁剪掉了。

更新

这是实际的9补丁文件,我之前发布的是该文件的屏幕截图,以便查看精细的细节。

enter image description here

UPDATE2:

好的,我想出了如何正确显示,但我仍然不了解最初失败的原因。我意识到,如果我将顶部标记放在作为9补丁内容的一部分的黑色线旁边,它就会失败;但是,如果我向左移动1个像素,它会正确呈现。

使用: enter image description here

失败: enter image description here

这是新的9补丁和成功渲染的屏幕截图:

enter image description here

enter image description here

更新3:

我刚刚使用draw9patch工具重新创建了9补丁,行为也一样。

4 个答案:

答案 0 :(得分:1)

我下载了您提供的9patch png,下图是您的png的左侧黑点,这是不正确的。 9patch pngs的边框应该只有1个像素宽,并且只能使用黑色作为其颜色,即(0,0,0)。

查看this page了解更多信息。

enter image description here

答案 1 :(得分:1)

我遇到的问题与你的问题类似。

我猜您将九个补丁图像放在分辨率低于设备的文件夹中。

当设备尝试获取图像时,需要向上缩放图像,并且顶部标记位于“边框”,即渐变区域enter image description here

这可能导致缩放后无法预测的图像。

答案 2 :(得分:0)

你太高了。

尽量让它像我发布的那样。

enter image description here

答案 3 :(得分:0)

你使用

吗?
  

... \的Android \ Android的SDK \工具\ draw9patch.bat

画出你的形象?这真的很有帮助,并显示初步结果。