使用图层列表来显示一些可绘制的图像

Android studio 2.0 Preview 3b

你好,

我创build了以下布局,我想用于我的应用程序的背景。 我正在使用layer-list ,我想在两个位置显示一碗豌豆。 在预览中一切看起来都不错,但当我运行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和一些便宜的智能设备上运行时,我得到以下结果: 在这里输入图像说明

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

我只是混淆了我应该相信的事情。 我也尝试使用位图以及是否会有所作为。

非常感谢您的任何build议。

如下更新你的图层列表

 <?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> 

将您的图像放在所有密度文件夹(xxhdpi,xhdpi,hdpi)中。

系统根据屏幕分辨率select图像资源。