9补丁图像中定义的内容区域不适用于自定义视图

时间:2013-07-23 09:23:22

标签: android

目前,我有自定义视图BarChart。我希望它有一些红色阴影效果。我正在使用九种补丁图像技术来实现这一目标。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:minHeight="240dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/card_background_red"
    android:orientation="vertical"
    android:padding="0dp" >

    <org.yccheok.jstock.gui.charting.BarChart
        android:id="@+id/bar_chart"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>

在我的自定义视图中,有一行代码,我将在视图的结尾处绘制字符串。

// Drawing string at end-y of BarChart custom view.
canvas.drawText("2007", x0, getHeight(), textPaint); 
canvas.drawText("2008", x1, getHeight(), textPaint);

我从“触摸”任何红色阴影中避免我的自定义视图,我定义了9-patch的内容区域,以便它不会触及红色阴影。

正如您所看到的,内容区域几乎远离红色阴影。

enter image description here

我认为我绘制的文字永远不会触及红色阴影区域,因为我限制了我的内容区域(整个自定义视图?)远离红色阴影区域。但是,它不起作用。

enter image description here

我对9补丁图像的内容区域有错误的期望吗?我认为Linear Layout的“内容”是我的自定义视图BarChart。因此,BarChart不应该触及9补丁图像中特定的红色阴影。 (http://www.shubhayu.com/android/9-patch-image-designers-vs-developers

1 个答案:

答案 0 :(得分:11)

从LinearLayout中删除android:padding =“0dp”。它覆盖了9-patch的填充。