这是我第一次在我的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>
这里有什么问题吗?
更新:
我正在为Android 2.2及更高版本编写应用程序。
我的手机使用的是Android 2.3
答案 0 :(得分:12)
答案 1 :(得分:4)
我是靠自己解决的,但我不明白为什么会这样。
在9补丁中,我在图像的顶部和左侧绘制了2条线(见图中的2条黑线)
答案 2 :(得分:1)
我对它进行了更深入的测试,似乎draw9patch工具,Eclipse中的图形编辑器和设备之间存在不一致。看起来在前两个中工作的九个补丁在设备上不起作用 - 它们默默地回退到BitmapDrawable,而不报告错误。在我的2.3.5设备以及4.1仿真器上重现。看到这个android bug:http://code.google.com/p/android/issues/detail?id=38941
解决方法是绘制单行像素,而不仅仅是点。
提示:您的图片应尽可能小。如果在左侧或顶部区域放置两个点,则表示您有两个拉伸区域,并且它们之间的区域保持未拉伸状态。您可以从第一个点(不包括)到第二个点(包括)剪切区域,并且只有一个点,图像较小且结果相同。
答案 3 :(得分:0)
我使用的图像有一个阴影,并且出色地我假设它在到达图像的最后一个像素之前结束......所以没有用图像放大图像。 ..(我知道9补丁工具正在为我做这个,但我正在编辑图像,所以我只是在那里添加)
所以问题是预览可以处理带alpha的像素,9-patch工具也可以处理它,但设备不能!