【问题标题】:How to use a shape drawable together with an image?如何将可绘制的形状与图像一起使用?
【发布时间】:2011-09-09 23:15:30
【问题描述】:

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

我知道我可以通过使用 shape drawable XML 来实现圆角,但如果我将 shape drawable 作为LinearLayout 的背景android:background=@drawable/rounded_corner,那么我无法指定任何图像用作背景。

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

【问题讨论】:

    标签: android android-layout xml-drawable


    【解决方案1】:

    您可以使用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>
    

    【讨论】:

    • 感谢woodshy 的回答 :) 我试过了,但它不像我预期的那样工作。它们只是被放在彼此的顶部,背景图像的角部分在圆角形状后面仍然可见。知道如何在保持圆角形状的同时使用背景图像吗?
    • 那么为什么不能创建圆角的图像呢?
    • 那将是最简单的方法,但如果可以的话,我想避免这种情况。事实是,图像是由其他人制作的,如果可能的话,我想在不要求他更改图像本身的情况下这样做。
    • 这对我有用,因为我想要一个圆圈内的图像,圆圈是一个 xml 形状,所有角都是 30dp,而图像只是一个可绘制的。
    • 我发现添加第二层(图像)时,第一层(形状)被放大了。图像小于形状。这是正常的吗?我该如何避免呢?
    【解决方案2】:

    对于那些寻求不同答案的人

    在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 或一般

     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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多