android xml在全屏幕背景上的可绘制图像

我需要一个XML绘制(为cordova初始屏幕)在Android中。 我想要在屏幕上显示一个透明的标志(没有拉伸),而屏幕的其余部分有背景颜色设置。

我首先尝试的是只在xml文件中添加图像:

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

这显示了标志居中在屏幕上,但(显然)没有背景色。

所以我尝试了不同的解决scheme来为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> 

现在图像有一个背景颜色 – 但它不是全屏。 它显示为全屏时会调整为图像大小并拉伸。

那么,我怎样才能得到一个全屏可绘制的背景颜色,并在其上居中的图像?

编辑:所有的答案build议使用RelativeLayout – 但我认为这是不可能在一个XML文件中的“可绘制的”,对不对? 我没有任何我可以编辑的布局 – 只有被cordova引用的drawable。

Related of "android xml在全屏幕背景上的可绘制图像"

我自己find了解决办法:

 <?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工作室显示布局仍然错误 – 但它在设备上按预期工作。

对于所有的海报,build议添加一个layout-xml文件:正如我在问题中所说的那样,我没有这个可能性,因为这个drawable被包含在Cordova中。 我无法控制这个drawable的布局。

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

这样做,

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

不需要使用其他相对布局的背景颜色。 你可以使用单个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" />