尝试将进度条居中放在图像上

时间:2015-06-23 20:26:45

标签: android xml

我有一个实现的布局,看起来不错:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/splash_layout">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/splashscreen"
    android:layout_alignParentTop="true"
    android:scaleType="centerCrop"/>
</LinearLayout>

但是我需要在图像的中心添加一个进度条,所以我有这个起始代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />
</RelativeLayout>

但是当我尝试将两者合并时,它会将图像从屏幕上移开。由于某种原因,我无法使用图形布局来渲染它,并试图看看我是否可以使用它。

我的想法是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/splash_layout">
<RelativeLayout
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />
</RelativeLayout>
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/splashscreen"
    android:layout_alignParentTop="true"
    android:scaleType="centerCrop"/>

</LinearLayout>

它似乎只是将图像从屏幕上移开,或者我无法弄清楚最新情况。

是否有办法将相对布局从dom中取出,使其变为相对或绝对?然后图像会向上滑动但相对布局仍然是0,0,高度和宽度== parent。

2 个答案:

答案 0 :(得分:2)

试试这个:

    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:orientation="horizontal">

                        <ImageView
                            android:id="@+id/imgCapaLivroCadastro"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:src="@drawable/myPicture" />

                        <ProgressBar
                            android:id="@+id/pbImgLivroCadEdit"
                            style="?android:attr/progressBarStyleSmall"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerInParent="true"
                            android:visibility="visible" />
</RelativeLayout>

答案 1 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/splash_layout" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/splashscreen"
        android:scaleType="centerCrop"/>

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>
</RelativeLayout>

布局文档为here,自第8版SDK以来,不推荐使用“fill_parent”。改为使用“match_parent”。