目前,我有一个自定义 View BarChart
。我希望对它有一些红色阴影效果。我正在使用 9-patch 图像技术来实现这一目标。
<?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>
在我的自定义 View 中,有一行代码,我将在 View 的末尾绘制字符串。
// Drawing string at end-y of BarChart custom view.
canvas.drawText("2007", x0, getHeight(), textPaint);
canvas.drawText("2008", x1, getHeight(), textPaint);
我避免我的自定义 View “接触”任何红色阴影,我将我的内容区域定义为 9-patch,这样它就不会接触到红色阴影。
如您所见,内容区域几乎没有红色阴影。
我认为我绘制的文本永远不会触及红色阴影区域,因为我限制我的内容区域(整个自定义 View ?)远离红色阴影区域。但是,它不起作用。
我对 9 补丁图像的内容区域有错误的预期吗?我认为线性布局的“内容”是我的自定义 View BarChart
。因此,BarChart
不应触及 9 补丁图像中特定的红色阴影。 ( http://www.shubhayu.com/android/9-patch-image-designers-vs-developers )
最佳答案
从 LinearLayout 中移除 android:padding="0dp"。它覆盖了 9-patch 的填充。
关于android - 9 补丁图像中定义的内容区域不适用于自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806256/