如何使用可与图像一起绘制的形状?

时间:2011-06-07 10:24:48

标签: android android-layout xml-drawable

我很难在我的LinearLayout中同时拥有圆角和背景图像。

我知道我可以通过使用形状可绘制的XML来实现圆角,但如果我将形状可绘制为LinearLayout的背景与android:background=@drawable/rounded_corner,那么我无法分配任何要使用的图像作为背景。

如何在LinearLayout中同时获得带有背景图像的圆角? 任何帮助,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:34)

您可以使用LayerDrawable,它可以包含您需要的任意数量的图层(形状或图像)。您可以将其创建为资源或以编程方式创建。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/rounded_corners" android:id="@+id/rounded_corners"/>
    <item android:drawable="@drawable/additional_image" android:id="@+id/additional_image" />
</layer-list>

答案 1 :(得分:3)

寻求不同答案的人

xml中的

<string-array name="ulke_isimleri">
    <item>kan</item>
    <item>kebapeli</item>
</string-array>

<array name="ulke_gorselleri">
    <item>@drawable/kan1</item>
    <item>@drawable/esyalar_kebap_adana</item>
</array>

在oncreate或general

 String[] ulkeAdlari =getResources().getStringArray(R.array.ulke_isimleri);
 TypedArray ulkeGorselleri = getResources().obtainTypedArray(R.array.ulke_gorselleri);

作为一个功能

 @Override
    public Drawable getDrawable(int position) {

         Drawable[] drawable = new Drawable[] { 
                 ulkeGorseli.getDrawable(position   ) 
                 ,
                 new TextDrawable(ulkeAdlari[ position   ]  )
         };
        return new LayerDrawable(drawable);
    }