1

所以我试图用一个透明的 Ninepatch Drawable 使用图层列表覆盖地图图像。像这样:

目标 http://f.cl.ly/items/2b1x3c3o0w3t1z0b2o2s/Screen%20Shot%202012-06-20%20at%2010.34.18%20AM.png

但我得到的只是这个(注意地图图像被九边形的边缘裁剪,即使它应该是透明的):

问题 http://f.cl.ly/items/380j3E2w452Y2D2d1K0a/Screen%20Shot%202012-06-20%20at%2010.29.45%20AM.png

这是我的图层列表代码:

<?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <nine-patch android:src="@drawable/myninepatch" />
    </item>
    <item android:drawable="@drawable/detail_map"/>
  </layer-list>

这是我的布局 ImageView:

    <ImageView
        android:layout_width="298dp"
        android:layout_height="106dp"
        android:layout_gravity="center"
        android:layout_marginBottom="11dp"
        android:src="@drawable/detail_map_overlay" />

编辑:这是 Ninepatch .png:

Ninepatch http://f.cl.ly/items/0X3N0d331Q15380D093n/myninepatch.9.png

任何想法如何实现这一目标?不一定使用 Ninepatch,但我想根据图像的大小使其可拉伸。或者如果你有一个想法如何做内发光,那也会膨胀。

4

1 回答 1

3

回顾评论并使其更清晰以供进一步阅读

您的 9 补丁无效:

  • 顶部和左侧部分仅定义可拉伸区域。
  • 底部和右侧,内容的位置。

用你的例子,它会做这样的事情(基于你但没有无用的部分):

9 补丁修正

然后将其设置为 ImageView 的背景:

<ImageView
    android:layout_width="298dp"
    android:layout_height="106dp"
    android:layout_gravity="center"
    android:layout_marginBottom="11dp"
    android:src="@drawable/detail_map"
    android:background="@drawable/myninepatch">
</ImageView>

像这样你可以摆脱图层列表

于 2012-06-20T09:55:12.477 回答