我在Eclipse IDE(Indigo)中将9patch与Android SDK一起使用时遇到了一些麻烦。 我构建了一个30 * 25 9Patch图像,我想用它作为按钮背景。
现在,这个9Patch图像,即使它很小,在设计时在IDE中运行良好。 事实上,如果我改变设备的屏幕尺寸,我的按钮调整得非常好,背景仍然可以在2.7英寸到10.1英寸的屏幕中定义。
但是当我在真实设备上或在调试模式下运行我的应用程序时(仅适用于屏幕尺寸> = 3.7“的设备),图像会失去他的质量,并且变得分散,就像旧的MS Paint在你做的那样缩放到很多图像!就像上面链接中的图像一样!
我也尝试使用更大的9patch(300 * 250),但这样它只适用于大屏幕,而在小屏幕上按钮的背景调整大小是可怕的。文字变得难以辨认,背景重叠,有时似乎包裹等...... 那到底有什么不对?为什么在我的IDE中一切正常,而在我的应用程序中没有? 我不想为每个small-medium-large-xlarge和ldpi-mdpi-hdpi-xhdpi组合屏幕类别创建不同的9patch ... 9patch特别为解决这种调整大小问题而诞生....
我发布了一些关于相关按钮的代码:
<Button
android:id="@+id/btnStart"
style="@style/button_style"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight=".10"
android:text="@string/btnStartText" >
</Button>
这是应用于按钮的样式:
<style name="button_style" parent="android:Widget.Button">
<item name="android:background">@drawable/button_statelistdrawable</item>
<item name="android:textColor">@color/White</item>
<item name="android:textSize">28sp</item>
</style>
希望有人帮助我...... 在此先感谢=)
答案 0 :(得分:1)
您的9补丁缺少填充定义区域(底部和右侧),因此它不是有效的9补丁,很可能解释显示错误。
我在这个示例文件中添加了它们: