0

円形で単なる影の .png 画像があります。私が持っているのは、そのプロパティImageButtonのイメージを持つ です。android:src背景として、描画可能なファイルにxmlファイルを含めることができます。私が今欲しいのは、png である影の画像を別のソリッドシェイプの背後に置くことです -> android:shape="oval".

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

    <item android:drawable="@drawable/shadowimg" />

    <item>
        <shape android:shape="oval">

            <solid
                android:color="#d63a33"/>

            <size
                android:width="70dp"
                android:height="70dp"/>
        </shape>
    </item>
</layer-list>

コードでわかるように、android:drawableプロパティを使用して影の画像を持つアイテムを追加しています。ただし、これでは影が表示されません。単に赤い円の形を示しています。しかし、真っ赤な円の背後にある影の画像が必要です。レイヤーリストに関する私の小さな知識から、一番上のアイテムが後ろに、一番下のアイテムが最初に来ます。

更新:画像の影を下に移動した後、効果が得られましたが、赤い実線の円のサイズが大きすぎて、サイズを変更してもサイズは変わりません。

更新されたコード:

<?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="#d63a33"/>

            <size
                android:width="5dp"
                android:height="5dp"/>
        </shape>
    </item>
    <item android:drawable="@drawable/shadowimg" />
</layer-list>

**** 更新 2: **** 削除する<item android:drawable="@drawable/shadowimg" />と、実線の円のサイズを変更できることに気付きましたが、これを追加すると、デフォルトでより大きなサイズになります。

これが起こることです:

ここに画像の説明を入力

誰かが必要な場合の影の画像は次のとおりです。

ここに画像の説明を入力

4

2 に答える 2

0

実際、問題は使用しているシャドウにあります。シャドウ自体がパディングを残します。できることは、ストロークを使用して最初の項目に塗りつぶしている単色にスペースを残すことです。

このコードを使用してください:

<?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="#d63a33" />

            <stroke
                android:width="7dp"
                android:color="#00000000" />
        </shape>
    </item>
    <item android:drawable="@drawable/shadowimg"/>
</layer-list>

次に、高さ30dp、幅30dpで使用します

<TextView
    android:id="@+id/titleText"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_centerVertical="true"
    android:layout_marginLeft="16dp"
    android:background="@drawable/circle_white"
    android:fontFamily="sans-serif-thin"
    android:gravity="center"
    android:text="Hi"
    android:textColor="#FF000000"
    android:textSize="16sp" />

ビューの高さと幅を増やしたい場合は、ストロークの幅も増やすだけです..

于 2015-05-28T07:13:05.177 に答える