背景レイヤーが画像で、前景が透明色になるように、layer-listでドローアブルを作成する必要があります。私はそれを行うことができます。私が成功していないのは、いくつかのパディング/マージンを追加して、それらの下部に画像の一部がその上に色付きのレイヤーなしで表示されるようにすることです。これが私の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>
この構成は機能していないため、パディングを最初のレイヤーに配置するのが私の推測です。しかし、ビットマップでそれを行う方法はわかりません
下のパディングを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>
詳しくは http://idunnolol.com/Android/drawables.html#layer-list をご覧ください。
インセットドローアブル内にビットマップをラップし、そこにパディングを設定します
<?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>
ドローアブルをレイヤーリストの同じアイテムに追加する場合、Android:top
、Android:bottom
、Android:left
、Android:right
などのプロパティを適用して、パディングを処理できます。
Android:width
プロパティとAndroid: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>