繁体   English   中英

如何在屏幕中央设置android进度栏

[英]how to set android progress bar in center of the screen

我正在尝试在屏幕中央显示进度条,但它没有显示在中央。 下面是我的布局。 我在这里做错了什么? 基本上,这是一个在顶部显示图像和android gallery小部件的布局。 当用户单击缩略图时,我正在从Web加载图像,并且希望在加载图像时显示进度对话框。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/container" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical">

    <Gallery android:id="@+id/gallery" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:gravity="top" />

    <ImageView android:id="@+id/actualimage" android:scaleType="fitCenter"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:visibility="gone" android:layout_gravity="center_vertical|center_horizontal|center"
        android:adjustViewBounds="true" />

    <ProgressBar android:id="@+android:id/progress_small1"
        android:layout_height="wrap_content" android:layout_width="wrap_content"
        android:visibility="visible" android:layout_gravity="center_vertical|center_horizontal"
        android:gravity="center_vertical|center_horizontal" />

</LinearLayout>

使用LinearLayout将垂直堆叠您的视图。 现在,您的ImageViewProgressBar正在争取居中位置。 对于这种情况,我绝对会推荐RelativeLayout

通过RelativeLayout ,您可以使用android:layout_centerInParent="true"

在根LinearLayout执行android:gravity="center" 设置android:visibility从分开的所有其他元素的ProgressBargone ,当你想要显示的ProgressBar

添加以下内容:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

也许您应该进入进度对话框,因为我相信您正在尝试显示进度指示器,直到为图库加载图像为止。

这将使您入门。

http://www.helloandroid.com/tutorials/using-threads-and-progress对话框

http://www.androidpeople.com/android-progress-dialog-example

而且,如果您正在寻找一种利用进度条本身的方法,那么也许您应该尝试一下Bradley Uffner提供的答案

尝试将进度条的layout_weight设置为1

我知道这个问题已经解决,但是考虑到布局视图/子视图的性能,RelativeLayout昂贵(需要两次通过)。 如果您的视图层次结构很复杂,请使用“相对布局”,或者如果您的视图只有以下简单视图,请使用“线性布局/框架”布局。

根据我的经验,当我的应用程序增长时,相对布局的UI性能会变差,最终会在所有布局文件上进行重新加工:(以下是将视图(在我的情况下为ProgressView)放置在视图中心的示例。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:orientation="vertical">
    <android.support.v7.widget.AppCompatImageView android:layout_gravity="center"  android:layout_width="match_parent"
        android:layout_height="0dp" app:srcCompat="@drawable/check" android:scaleType="fitCenter"
        android:layout_weight=".7"/>
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp" android:layout_weight=".3">
        <ProgressBar android:layout_gravity="center|center_horizontal" android:indeterminateTint="@color/textColorPrimary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:indeterminate="true"/>
    </FrameLayout>

</LinearLayout>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM