62

レイヤーリストの仕組みがわかりません。いくつかの例を含む公式ドキュメントを読みましたが、期待どおりに機能しません。1 dp でパディングする必要がある 4 つの正方形が必要ですが、期待どおりのものはありません。以下は、500% に拡大されたスクリーンショットです。

私のスアレス
(間違った色は関係ありません)
ご覧のとおり、サイズが完全に間違っており、パディングがありません。幅/高さ、右/左/上/下などの実際の値を設定して、Androidが必要なものを確実に取得できるようにしました。

ここに私のxmlがあります:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <size android:width="9dp"
                android:height="9dp"/>
            <solid android:color="#f000"/>
        </shape>
    </item>

    <item android:top="1dp" android:left="1dp" android:bottom="5dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
    <item android:top="1dp" android:left="5dp" android:bottom="5dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>

    <item android:top="5dp" android:left="1dp" android:bottom="1dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>
    <item android:top="5dp" android:left="5dp" android:bottom="1dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
</layer-list>
4

2 に答える 2

6

pxの代わりに使用するdpか、すべての次元に を掛けます10

なぜこれが起こっているのか正確にはわからないことを認めるのは恥ずかしいですが、私の推測で1dpは、 は浮動小数点px値であり、ImageViewは拡大されます。

専門家の回答を歓迎します:)

于 2013-01-21T12:27:59.067 に答える