2013-04-17 31 views
1

我无法理解,为什么这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"/> 
+0

它的文件名是什么? – Ahmad

回答

0

看来9补丁不好,我简化到这一个。请试一试。当我使用9个补丁时,我只放置顶部和左侧边缘标记;我想在png周围标记会在某个时刻造成混乱。

9-patch image updated

+0

在这里添加了xml代码 – Lefteris

+0

Mmh同样的问题,让我做一些测试。 – ssantos

+0

我附加了一个新的PNG到我的答案。 – ssantos

0

确保它是在绘制,华电国际,否则它就会重新调整,和一个像素的黑色有时不很好地扩展。对于这样的图像,最好让它们适用于所有dpis

+0

它在drawable-xhdpi文件夹中 – Lefteris

0

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

API导游说,

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

+0

是的,图像从photoshop保存为24位png图像(透明),然后保存为9patch draw9patch工具 – Lefteris

0

Lefteris,我发现这个教程有助于理解为什么我在Photoshop中创建与NinePatch图像(图像和导游)问题:

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

具体而言,本款:

另外,您应该记住,单像素 轮廓的其余区域必须完全透明。这包括图像的四个角落 - 这些应该始终清晰。这可能会比你意识到的更大的问题 。例如,如果您在Photoshop中缩放图像,它将添加抗锯齿像素,其中可能包含几乎不可见的像素,这也会导致其失败*。如果您必须在Photoshop中使用 比例缩放,请使用“图像大小”弹出式菜单底部的“取样 ”下拉菜单中的“最近邻居”设置以 保留导杆上的锐利边缘。

我发现,先准备图像在Photoshop中,然后使用draw9patch工具画出导游是创造工作 NinePatch图像的最佳方式。该工具的好处是它会指出有问题的地方。如前所述,右侧和底部指南并不是必需的,因为您可以通过将1px边框置于不想伸展的顶部和左侧区域,轻松指定内容区域 - 以下是我需要放置的示例条幅屏幕的底部。我需要确保这两个内容区域不会延伸。此外,我还希望确保拉伸并没有出现在左内容区域的左侧和右侧的内容区域的右侧:

enter image description here

希望这有助于。