LinearLayout中的启动画面图像背景不适合

时间:2017-04-03 05:33:45

标签: android android-layout imageview android-xml splash-screen

我在启动画面活动中使用了一个图像作为LinearLayout的背景,但它显示不适合屏幕。我不知道如何使用属性来拉伸它。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.myproject.SplashActivity"
    android:orientation="horizontal"
    android:background="@drawable/my_image_background">

</LinearLayout>

7 个答案:

答案 0 :(得分:2)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.myproject.SplashActivity"
    android:orientation="horizontal"
    android:background="@drawable/my_image_background">
     <ImageView
         android:scaleType="fitXY"
         android:src="@drawable/my_image_background"
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>
</LinearLayout>

使用ImageView并使用属性scaleType。这会自动适合任何屏幕分辨率。

  

-----更新-------

正如Ahamed所建议的那样,如果你想在布局中添加更多的视图,最好使用RelativeLayout(因为它会叠加你的视图)。考虑下面的RelativeLayout实现。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_splash"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
         <ImageView
             android:scaleType="fitXY"
             android:src="@drawable/my_image_background"
             android:layout_width="match_parent"
             android:layout_height="match_parent"/>
          <!-- Add other views depending on your screen specs -->
    </RelativeLayout>

答案 1 :(得分:1)

正确的方法是这样使用它,在styles.xml中添加:

 <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
</style>

在您的清单文件中添加此

  <activity
        android:name=".SplashActivity"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

和@ drawable / splash可能就像

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <!-- The background color, preferably the same as your normal theme -->
    <item android:drawable="@drawable/splashscreen"/>
    <!-- Your product logo - 144dp color version of your app icon -->
    <item>
        <bitmap
            android:src="@drawable/splash_logo"
            android:gravity="center"/>
    </item>
</layer-list> 

答案 2 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/dighsplash">
</LinearLayout> 

尝试这种方式。

答案 3 :(得分:1)

最好将ImageView用于图像,因此我更改了您的布局,如下所示。它可以像你期望的那样工作。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.myproject.SplashActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/my_image_background" />

</LinearLayout>

答案 4 :(得分:1)

使用此:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myproject.SplashActivity"
android:fitSystemWindows="true"
android:orientation="horizontal"
android:scaleType="fitXY"
android:background="@drawable/my_image_background">

此代码绝对适合您的屏幕。

答案 5 :(得分:1)

首先检查图像my_image_background两边是否有空格。如果没有,你的代码就可以了......否则你也可以尝试这个代码

 <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout         xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/activity_splash"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.myproject.SplashActivity"
            android:orientation="vertical"
            android:layout_alignParentRight="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:background="@drawable/my_image_background">

        </RelativeLayout>

查看这个::: Showing Splash screen in android apps

答案 6 :(得分:0)

如果scaleType =&#34; fitxy&#34;请尝试以下操作:没有使用imageview。

<强>机器人:fitSystemWindows =&#34;真&#34;

$.ajax({
    type: "POST",
    url: "controller/Action",
    data: "",
    success: function (wrapperObj) {
        console.log(wrapperObj.success); // this will be your isSuccess flag.
        if(wrapperObj.success)
        {            
            console.log(wrapperObj.data); // this will be your obj.                 
        }
    }
})