1

目前,我有一个自定义视图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 的内容区域,这样它就不会接触红色阴影。

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

在此处输入图像描述

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

在此处输入图像描述

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

4

1 回答 1

13

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

于 2013-07-23T09:49:32.483 回答