如何将填充添加到位图和图层列表中的颜色

lea*_*ner 25 android bitmap shape android-layout layer-list

我需要创建一个带有图层列表的drawable,使得背景图层是图像,前景是透明颜色.我能够做到这一点.我没有成功的地方是添加一些填充/边距,以便在它们底部显示一段图像,而顶部没有彩色图层.这是我的xml.谢谢你的帮助.

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

  <item>
    <shape
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle" >
      <solid android:color="@color/color1" />
      <padding android:bottom="20dp" />
    </shape>
  </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

由于此配置不起作用,我的猜测是将填充放在第一层.但我不知道如何用位图做到这一点

chi*_*uki 57

将底部填充从shape父级移动到父级item:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <bitmap android:src="@drawable/img1" />
  </item>
  <item android:bottom="20dp">
    <shape android:shape="rectangle" >
      <solid android:color="@color/color1" />
    </shape>
  </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://idunnolol.com/android/drawables.html#layer-list.


dan*_*mit 6

将位图包装在插图drawable中并在那里设置填充

  • 你能给个例子吗? (3认同)

小智 5

如果您在图层列表中的绘制添加到同一个项目,你可以申请,如性能android:topandroid:bottomandroid:leftandroid:right处理填充。

我通过简单地使用android:widthandroid:height属性解决了可绘制对象与 TextView 不对齐的问题。

例如

<item
    android:width="26dp" android:height="26dp"
    android:drawable="@drawable/ic_person">
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/transparent" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)


Far*_*ohi 5

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="oval">
            <solid android:color="#FFE3F5F2"/>
        </shape>
    </item>

    <item
        android:bottom="7dp"
        android:left="7dp"
        android:right="7dp"
        android:top="7dp">
        <bitmap
            android:src="@drawable/ic_link">
        </bitmap>

    </item>


</layer-list>
Run Code Online (Sandbox Code Playgroud)