Изображение на Android-обозревателе xroid на полноэкранном фоне

Мне нужен xml drawable (для экрана заставки для кордовы) в android. Я хочу отображать прозрачный логотип в центре экрана (без растягивания), в то время как на остальной части экрана установлен цвет фона.

Сначала я попытался добавить только изображение в xml-файл:

<?xml version="1.0" encoding="utf-8"?> <bitmap android:src="@drawable/splashscreen" android:gravity="center_horizontal|center_vertical" /> 

Это показало логотип в центре экрана, но (очевидно) не имеет цвета фона.

Поэтому я попробовал разные решения, чтобы добавить цвет фона в этот xml. Например:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> </shape> </item> <item> <bitmap android:src="@drawable/splashscreen" android:gravity="center_horizontal|center_vertical" /> </item> </layer-list> 

Теперь изображение имеет цвет фона – но это уже не полный экран. Он настраивается на размер изображения и растягивается при показе в полноэкранном режиме.

Итак, как я могу получить полный экран с цветом фона и центрированным изображением на нем?

EDIT: все ответы предлагают использовать RelativeLayout – но я думаю, что это невозможно в XML-файле в «drawable», верно? У меня нет какого-либо макета, который я могу редактировать, – только для рисования, на который ссылается кордова.

Solutions Collecting From Web of "Изображение на Android-обозревателе xroid на полноэкранном фоне"

Я нашел решение самостоятельно:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <color android:color="#FFFF"></color> </item> <item> <bitmap android:src="@drawable/splashscreen" android:gravity="center_horizontal|center_vertical" /> </item> </layer-list> 

Студия Android показывает, что макет по-прежнему не так – но он работает на устройстве, как ожидалось.

Для всех плакатов, предлагающих добавить файл layout-xml: Как я уже сказал в вопросе, у меня нет возможности сделать это, так как этот drawable включен из Кордовы. У меня нет контроля над используемым макетом вокруг этого чертежа.

Сделайте так,

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" >//Set background color <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:adjustViewBounds="true" android:src="@drawable/splash_logo" />//set logo </RelativeLayout> 

Вы можете использовать следующий код для своих нужд:

  <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@color/bg_color"/> <item> <bitmap android:gravity="center|bottom|clip_vertical" android:src="@drawable/your_image" /> </item> </layer-list> 
 <?xml version="1.0" encoding="UTF-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/splash" android:gravity="fill_horizontal|fill_vertical" /> 

Не нужно использовать другую относительную компоновку для цвета фона. Вы можете сделать это, используя один ImageView, например:

 <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView" android:src="@drawable/noise" android:scaleType="centerInside" android:background="@android:color/black" />