这个九点图像有什么问题?

时间:2013-04-17 16:50:23

标签: android nine-patch

我无法理解,为什么这个9patch图像没有在我的Android应用程序中设置为ninepatch。 出于某种原因,它将其显示为常规png文件。

奇怪的是,draw9patch工具和Eclipse构建器都在UI设计器中正确显示图像(它正在正确展开),但不是在nexus 7上。

我正在附上图片。

Google+ button 9patch

这不是文件名,因为9patch是使用draw9patch工具创建的,文件名是“ google_button.9.png

这是XML代码

<Button
            android:id="@+id/btn_googleplus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/google_button"
            android:minWidth="300dp"
            android:text="@string/login_login_with_google"
            android:textColor="#ffffffff"
            android:textStyle="bold"
            android:textSize="19sp"
            android:layout_marginTop="15dp"/>

4 个答案:

答案 0 :(得分:0)

似乎9补丁不行,我简化为这个。请试一试。当我使用9个补丁时,我只放了顶部和左边的标记;我想在png周围放置标记会导致混乱。

9-patch image updated

答案 1 :(得分:0)

确保它处于drawable-hdpi状态,否则会重新缩放,并且有时一个像素黑色不能很好地缩放。对于这样的图像,最好将它们用于所有dpis

答案 2 :(得分:0)

9patch图像的背景是完全透明还是白色?

API指南说,

  

边框用于定义图像的可伸缩和静态区域。您可以通过在边框的左侧和顶部绘制一条(或多条)1像素宽的黑线来指示可伸展的部分(其他边框像素应该是完全透明或白色)。

答案 3 :(得分:0)

Lefteris,我发现本教程有助于理解为什么我在Photoshop中创建的NinePatch图像(图像和指南)存在问题:

http://radleymarx.com/blog/simple-guide-to-9-patch/

具体来说,这一段:

  

另外你应该记住一个像素的剩余区域   大纲必须完全透明。这包括四个角落   图像 - 那些应该总是很清楚。这可能更大   比你意识到的问题。例如,如果您缩放图像   Photoshop它将添加可能包含的消除锯齿的像素   几乎不可见的像素也会导致它失败*。如果你必须   在Photoshop中缩放,使用Resample中的Nearest Neighbor设置   图像下拉菜单(位于“图像大小”弹出菜单的底部)   保持指南上的锋利边缘。

我发现首先在Photoshop中准备图像,然后使用draw9patch工具绘制指南是创建工作 NinePatch图像的最佳方法。该工具的优点在于它将指出有问题的区域。如上所述,右侧和底部指南不是必需的,因为您可以通过将1px边框从您不想拉伸的顶部和左侧区域中轻松指定内容区域 - 以下是我需要放置的示例横幅屏幕的底部。我需要确保两个内容区域都没有延伸。此外,我还想确保左内容区域的左侧和右侧内容区域的右侧没有发生拉伸:

enter image description here

希望这有帮助。