在活动中心添加进度对话框

时间:2017-03-20 16:54:11

标签: java android android-activity android-progressbar

我无法添加进度条,因为我的需要如下所示,任何人都可以帮助我

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:background="#039BE5">



    <RelativeLayout
        android:id="@+id/mobileRelView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:padding="2dp">

        <ImageView
            android:id="@+id/mobile_Image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="1dp"
            android:scaleType="centerCrop"
            android:src="@drawable/mobile1" />

        <Button
            android:id="@+id/mobile_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:background="#a4000000"
            android:onClick="goToMobileForm"
            android:text="MOBILE"
            android:textColor="#ffffff"
            android:textSize="24sp"
            android:textStyle="bold" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:paddingLeft="2dp"
        android:paddingRight="2dp"
        android:paddingBottom="2dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25">

        <ImageView
            android:id="@+id/laptop_Image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="@drawable/laptopservicing" />

        <Button
            android:text="LAPTOP"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/laptop_button"
            android:onClick="goToLaptopForm"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textSize="24sp"
            android:textStyle="bold"
            android:textColorHint="#ffffff"
            android:background="#a4000000"
            android:textColor="#ffffff" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="2dp"
        android:paddingRight="2dp"
        android:layout_weight="0.25">

        <ImageView
            android:id="@+id/desktop_Image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerCrop"
            android:src="@drawable/otherservice" />

        <Button
            android:text="DESKTOP"
            android:layout_width="match_parent"
            android:textStyle="bold"
            android:layout_height="match_parent"
            android:id="@+id/desktop_button"
            android:onClick="goToDesktopForm"
            android:background="#a4000000"
            android:textSize="23sp"
            android:textColor="#ffffff"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="2dp"
        android:layout_weight="0.25">

        <ImageView
            android:id="@+id/others_Image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:scaleType="centerCrop"
            android:src="@drawable/otherservice" />

        <Button
            android:text="OTHERS"
            android:textStyle="bold"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/others_button"
            android:onClick="gotToOthersForm"
            android:background="#A4000000"
            android:textSize="24sp"
            android:textColor="#ffffff" />
    </RelativeLayout>


</LinearLayout>

我需要将此进度条添加到我的活动中

<ProgressBar
        android:id="@+id/loading_spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminateTintMode="src_in"
        android:indeterminateTint="@color/colorPrimary"
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>

当我简单地添加它时,我得到了这个输出

enter image description here

但我需要像中国这样过分地使用它

enter image description here

3 个答案:

答案 0 :(得分:2)

试试这个:

以编程方式显示中心的ProgressDialog

 ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "Title", "Message");
 dialog.getWindow().setGravity(Gravity.CENTER);

Indicator

为中心

使用包含progressBar

的自定义布局
    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:backgroundTint="@color/colorAccent" />

</RelativeLayout>

使用:

progressDialog.setContentView(R.layout.progress_layout);  //just the indicator at center

初始化Progressdialog。

ProgressDialog dialog = new ProgressDialog(this);//initialization;

到setMessage:

dialog.setMessage("Message"); 

如果您不想显示消息:

dialog.setMessage(null);
dialog.show();

使背景透明:

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

答案 1 :(得分:1)

使用LinearLayout包裹根FrameLayout,将ProgressBar添加为第二个孩子。它将显示在其他所有内容之上。

答案 2 :(得分:0)

您需要将LinearLayout切换为RelativeLayout作为xml中的第一个布局。

然后你可以这样做:

<ProgressBar
    android:id="@+id/loading_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminateTintMode="src_in"
    android:indeterminateTint="@color/colorPrimary"
    android:layout_centerInParent="true"/>

并且进度将保持中心