1

这是我第一次在我的 android 应用程序上使用九补丁图像。太愚蠢了。当我在 Eclipse 布局编辑器上预览时,它可以工作。但是当我在真实设备(HTC Inspire 4g、HTC Explorer、...)上构建应用程序时,情况并非如此。

<LinearLayout
                        android:layout_width="0dip"
                        android:layout_height="fill_parent"
                        android:layout_margin="5dp"
                        android:layout_weight="1"
                        android:background="@drawable/shadow_border"
                        android:gravity="center"
                        android:padding="0dip" >

                        <TextView
                            android:id="@+id/itemdetail_textview_price"
                            style="@style/textview_nomalBold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="$10"
                            android:textColor="#F00"
                            android:textSize="32dp" />

                        <TextView
                            android:id="@+id/itemdetail_textview_originalPrice"
                            style="@style/textview_nomalBold"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="15dp"
                            android:text="$20"
                            android:textSize="32dp" />
                    </LinearLayout>

九点补丁工具

在 Eclipse 布局编辑器上预览

在真实设备上

这里有什么问题吗?

更新:

  • 我正在为 Android 2.2 及更高版本编写应用程序。

  • 我的手机使用 Android 2.3

4

4 回答 4

13

从底部和右侧删除两个点,因为这些边决定了您的内容应该显示多少空间。

这是九个补丁在android中的工作方式

九个补丁

当您创建九个补丁图像时,请按照本教程进行操作。

于 2012-05-07T09:42:50.113 回答
4

我自己解决了它,但我不明白它为什么会起作用。

在九个补丁中,我在图像的顶部和左侧画了两条线(见图片中的两条黑线) 在此处输入图像描述

于 2012-05-07T09:08:46.213 回答
1

我更深入地测试了一下,似乎draw9patch工具,Eclipse中的图形编辑器和设备有不一致的地方。九个补丁,似乎在前两个中工作,在设备上不起作用 - 它们默默地退回到 BitmapDrawable,而不报告错误。在我的 2.3.5 设备以及 4.1 模拟器上重现。看到这个 android 错误:http ://code.google.com/p/android/issues/detail?id=38941

解决方法是绘制单行像素,而不仅仅是点。

提示:您的图像应尽可能小。如果将两个点放在左侧或顶部区域,则意味着您有两个拉伸区域,并且它们之间的区域保持未拉伸。您可以从第一个点(不包括)到第二个点(包括)的区域切出,并且只有一个点,图像更小,结果相同。

于 2012-10-26T09:17:47.353 回答
0

我正在使用的图像有一个阴影,我很聪明地假设它在到达图像的最后一个像素之前就结束了......所以没有费心将图像放大一个像素......(我知道 9补丁工具正在为我执行此操作,但我正在编辑图像,所以我只是将它添加到那里)

所以问题是预览可以处理带有alpha的像素,9-patch工具也可以处理,但设备不能!

于 2014-12-14T22:26:42.507 回答