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

Che*_*eng 1 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>
Run Code Online (Sandbox Code Playgroud)

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

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

我避免了我的自定义视图"触摸"任何红色阴影,我定义了9个补丁的内容区域,因此它不会触及红色阴影.

如您所见,内容区域几乎远离红色阴影.

在此输入图像描述

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

在此输入图像描述

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

Leo*_*dos 12

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