因此,我尝试使用图层列表使用透明的ninepatch Drawable覆盖地图图像。像这样:

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

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

problem 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,但我想根据图像的大小使其可拉伸。或者,如果您有一个如何进行内部发光的想法,那也会很不错。

最佳答案

重述评论并使其更清晰以供进一步阅读

您的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>


这样,您可以摆脱图层列表

关于android - Android:NinePatch和LayerList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11115799/

10-09 00:00