2012-06-20 20 views
1

所以我试图用透明ninepatch覆盖地图图像使用图层列表绘制。就像这样:Android:NinePatch和LayerList

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巴纽:

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

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

+0

你可以提供你的9补丁(或它的缩放)看看它是否有问题? –

+0

当然,我会将其添加到帖子,谢谢! –

+0

难道你不会忘记填充的底部和右侧黑色栏? – VinceFR

回答

3

回顾一下意见,并使其进一步阅读

你9补丁更加清晰无效:

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

你的榜样,它会做这样的事情(根据您的但没有无用的部分):

9 patch corrected

然后将其设置为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> 

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

+0

地图应该是背景和ninepatch的src虽然,对不对? –

+0

作为src的9补丁不起作用。它需要作为背景。这对于9补丁边缘的透明度会是一个问题。 保持LayerList ... –