9Patch按钮图像在Android应用程序中调整大小

时间:2012-03-02 19:40:42

标签: android android-layout button image-resizing nine-patch

我在Eclipse IDE(Indigo)中将9patch与Android SDK一起使用时遇到了一些麻烦。 我构建了一个30 * 25 9Patch图像,我想用它作为按钮背景。

现在,这个9Patch图像,即使它很小,在设计时在IDE中运行良好。 事实上,如果我改变设备的屏幕尺寸,我的按钮调整得非常好,背景仍然可以在2.7英寸到10.1英寸的屏幕中定义。

但是当我在真实设备上或在调试模式下运行我的应用程序时(仅适用于屏幕尺寸> = 3.7“的设备),图像会失去他的质量,并且变得分散,就像旧的MS Paint在你做的那样缩放到很多图像!就像上面链接中的图像一样!

http://www.google.it/imgres?q=low+quality+image&um=1&hl=it&biw=1280&bih=915&tbm=isch&tbnid=jArCzplVG4XNFM:&imgrefurl=http://www.bestandroidsphones.com/tag/droid&docid=w_to2ChM5qxkwM&imgurl=http://www.bestandroidsphones.com/wp-content/Pictures/mobilephone/android_logo_low_quality.jpg&w=400&h=400&ei=bh5RT9u7NMjCswaK5I3xCw&zoom=1&iact=hc&vpx=189&vpy=161&dur=388&hovh=225&hovw=225&tx=134&ty=95&sig=102908265289684600078&page=2&tbnh=163&tbnw=162&start=30&ndsp=25&ved=1t:429,r:10,s:30

我也尝试使用更大的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>

希望有人帮助我...... 在此先感谢=)

1 个答案:

答案 0 :(得分:1)

您的9补丁缺少填充定义区域(底部和右侧),因此它不是有效的9补丁,很可能解释显示错误。

我在这个示例文件中添加了它们:

sample 9-patch