XML android 布局中的居中进度条和图像

Center ProgressBar and Image in XML android layout

我的 android 应用程序有一个加载屏幕。

如果我只使用背景图片或 ProgressBar,它工作正常,但是当我尝试将两个元素居中放置在屏幕中间时,我得到:

到目前为止,我的 activityy_main.xml 看起来像这样:

<?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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/mainLayout"
    tools:context="com.siconet.axa.MainActivity" >

    <RelativeLayout
        android:id="@+id/loadingPanel"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/axa_logo" />

        <ProgressBar
            android:layout_width="250px"
            android:layout_height="250px"
            android:indeterminate="true" />

    </RelativeLayout>

    <WebView 
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</RelativeLayout>

我想要实现的是这样的:

请尝试使用 centerInParent。像...

 <RelativeLayout
    android:id="@+id/loadingPanel"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerInParent="true" >  // right here

但我认为更好的方法是只使用 LinearLayout。试试下面的布局...

<?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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/mainLayout" >

<LinearLayout
    android:id="@+id/loadingPanel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent ="true"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/play"
        android:layout_gravity="center_horizontal" />

    <ProgressBar
        android:layout_width="250px"
        android:layout_height="250px"
        android:background="@drawable/pause"
        android:indeterminate="true" />

</LinearLayout >

<WebView
    android:id="@+id/webView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:visibility="gone"/>
</RelativeLayout>

注意不同的变化,但这个布局给了我以下...

我在第二张图片中没有看到你的 ImageView,所以我将它们都居中。如果你能解释它应该在哪里,那么我可以为此调整这个布局。

尝试将这一行添加到您的进度条中 android:layout_centerInParent="true"

试试这个布局

   <?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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/mainLayout"
    tools:context="com.siconet.axa.MainActivity" >

    <RelativeLayout
        android:id="@+id/loadingPanel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />

        <ProgressBar
            android:layout_width="250px"
            android:layout_height="250px"
            android:layout_centerInParent="true"
            android:indeterminate="true" />

    </RelativeLayout>

    <WebView 
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

希望对您有所帮助。

尝试在 "loadingPanel"

中使用 Frame Layout 而不是 RelativeLayout