我使用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补丁:
这就是我认为它应该在按钮上的样子:
但这正是我实际得到的(底线是在黑暗背景下透明度为26%):
你可以看到左边有一条错误的黑线,应该在右边的黑线显然被裁剪掉了。
更新
这是实际的9补丁文件,我之前发布的是该文件的屏幕截图,以便查看精细的细节。
UPDATE2:
好的,我想出了如何正确显示,但我仍然不了解最初失败的原因。我意识到,如果我将顶部标记放在作为9补丁内容的一部分的黑色线旁边,它就会失败;但是,如果我向左移动1个像素,它会正确呈现。
使用:
失败:
这是新的9补丁和成功渲染的屏幕截图:
更新3:
我刚刚使用draw9patch工具重新创建了9补丁,行为也一样。
答案 0 :(得分:1)
我下载了您提供的9patch png,下图是您的png的左侧黑点,这是不正确的。 9patch pngs的边框应该只有1个像素宽,并且只能使用黑色作为其颜色,即(0,0,0)。
查看this page了解更多信息。
答案 1 :(得分:1)
我遇到的问题与你的问题类似。
我猜您将九个补丁图像放在分辨率低于设备的文件夹中。
当设备尝试获取图像时,需要向上缩放图像,并且顶部标记位于“边框”,即渐变区域。
这可能导致缩放后无法预测的图像。
答案 2 :(得分:0)
你太高了。
尽量让它像我发布的那样。
答案 3 :(得分:0)
你使用
吗?... \的Android \ Android的SDK \工具\ draw9patch.bat
画出你的形象?这真的很有帮助,并显示初步结果。