web-dev-qa-db-ja.com

layer-listを使用して描画可能な画像を表示する

Android Studio 2.0 Preview 3b

こんにちは、

アプリの背景に使用する次のレイアウトを作成しました。 layer-listを使用していますが、2つの場所にエンドウ豆のボウルを表示したいと思います。プレビューではすべてが正常に見えますが、genymotionまたはいくつかの安価な中国のデバイスで実行すると、画像が画面全体に広がります。ただし、Android AVDでは、すべてが正常に見え、Nexus 5(実際のデバイス)ではすべてが正常に機能します。

これが私が欲しいものであり、これがAVDとNexus 5でどのように表示されるかです。ご覧の通り、問題はありません。

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
        <shape>
            <gradient
                Android:centerX="0.5"
                Android:centerY="0.3"
                Android:endColor="#08e25b"
                Android:gradientRadius="300dp"
                Android:startColor="#b7e9c9"
                Android:type="radial" />
        </shape>
    </item>

    <item
        Android:width="48dp"
        Android:height="48dp"
        Android:left="350dp"
        Android:top="400dp">
        <bitmap Android:src="@drawable/peas" />
    </item>

    <item
        Android:width="68dp"
        Android:height="68dp"
        Android:drawable="@drawable/peas"
        Android:left="-20dp"
        Android:top="480dp" />
</layer-list>

peas.pngファイルをdrawable-nodpiに配置し、layer-listに幅と高さを追加しました

そして、genymotionといくつかの安価なスマートデバイスで実行すると、次のようになります: enter image description here

Just quick summary.

Nexus 5 real device and AVD devices works ok
Genymotion and cheap smart devices doesn't display correctly

私はただ信じるべきことで混乱しています。私もビットマップを使用して、違いが生じるかどうかを確認しようとしました。

提案をありがとう。

27
ant2009

次のようにレイヤーリストを更新します

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

<item>
    <shape>
        <gradient
            Android:centerX="0.5"
            Android:centerY="0.1"
            Android:endColor="#08e25b"
            Android:gradientRadius="300dp"
            Android:startColor="#b7e9c9"
            Android:type="radial" />
    </shape>
</item>
<item
    Android:width="48dp"
    Android:height="48dp"
    Android:bottom="68dp"
    Android:right="-20dp">
    <bitmap
        Android:gravity="bottom|right"
        Android:src="@drawable/peas" />
</item>
<item
    Android:height="68dp"
    Android:left="-20dp"
    Android:bottom="-20dp"
    Android:width="68dp">
    <bitmap
        Android:gravity="bottom|left"
        Android:src="@drawable/peas" />
</item>
34
SachinS

すべての密度フォルダー(xxhdpi、xhdpi、hdpi)に画像を配置します。

システムは、画面解像度に基づいて画像リソースを選択します。

10
Akhil Jayakumar