如何获得进度条的半透明布局

时间:2014-10-09 01:30:31

标签: android xml android-layout android-fragments

我想在获取数据时在我的应用片段上显示临时旋转进度指示器。到目前为止,我已经让它工作得很好,但是当我希望在指标可见时让常规页面内容变灰时背景是纯黑色。我尝试过的是在我现有的布局上添加一个半透明黑色背景的全新全屏幕布局,但无论我尝试什么,我只能获得黑色背景。我还尝试了一个FrameLayout容器,但这只给出了100%透明的布局。

我甚至读过这篇文章,但它不起作用: Changing translucent background color of progressbar android

片段xml布局文件的代码:(表格是动态填充的)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:paddingLeft="@dimen/activity_horizontal_margin"
              android:paddingRight="@dimen/activity_horizontal_margin"
              android:paddingTop="@dimen/activity_vertical_margin"
              android:paddingBottom="@dimen/activity_vertical_margin"
              tools:context="com.ericbatemandev.lemanskarting.view.League"
              android:background="#000"
              android:orientation="vertical">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/pageLoading"
        android:background="@color/transparent">

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="64dp"
        android:gravity="center_vertical"
        android:layout_marginBottom="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Pro Enduro League Standings"
            android:id="@+id/leaguePageTitle"
            android:layout_gravity="center"
            android:padding="10dp"
            android:textSize="18sp"
            android:textColor="#fff"
            android:background="@drawable/page_title_background"
            android:textStyle="bold"/>
    </LinearLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scrollView">

            <TableLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/leagueResultsTable">

                <TableRow
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">

                    <TextView
                        android:layout_width="80dp"
                        android:layout_height="wrap_content"
                        android:text="Standing"
                        android:id="@+id/standingLabel"
                        android:textStyle="bold"
                        android:textSize="16sp"
                        android:textColor="#fff"/>

                    <TextView
                        android:layout_width="200dp"
                        android:layout_height="wrap_content"
                        android:text="Team Name"
                        android:id="@+id/teamNameLabel"
                        android:textColor="#fff"
                        android:textSize="16sp"
                        android:textStyle="bold"/>

                    <TextView
                        android:layout_width="55dp"
                        android:layout_height="wrap_content"
                        android:text="Points"
                        android:id="@+id/pointsLabel"
                        android:textStyle="bold"
                        android:textSize="16sp"
                        android:textColor="#fff"/>
                </TableRow>

            </TableLayout>
        </ScrollView>
    </LinearLayout>

</LinearLayout>

colors.xml的颜色

    <color name="transparent">#80000000</color>

我在我的片段中调用这样的布局:

    public void showLoadingIndicator() {
        RelativeLayout pageLoading = (RelativeLayout)llLayout.findViewById(R.id.pageLoading);
        pageLoading.setVisibility(View.VISIBLE);
    }

    public void hideLoadingIndicator() {
        RelativeLayout pageLoading = (RelativeLayout)llLayout.findViewById(R.id.pageLoading);
        pageLoading.setVisibility(View.GONE);
    }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我刚用FrameLayout作为父语来解决这个问题。之前我没有做的关键是将RelativeLayout将进度指示器LAST保存在树中,而不是第一个。布局并不完美,但我现在有了我想要的半透明效果。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          android:paddingBottom="@dimen/activity_vertical_margin"
          tools:context="com.ericbatemandev.lemanskarting.view.League"
          android:background="#000"
          android:orientation="vertical">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="64dp"
    android:gravity="center_vertical"
    android:layout_marginBottom="10dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pro Enduro League Standings"
        android:id="@+id/leaguePageTitle"
        android:layout_gravity="center"
        android:padding="10dp"
        android:textSize="18sp"
        android:textColor="#fff"
        android:background="@drawable/page_title_background"
        android:textStyle="bold"/>
</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView">

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/leagueResultsTable">

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <TextView
                    android:layout_width="80dp"
                    android:layout_height="wrap_content"
                    android:text="Standing"
                    android:id="@+id/standingLabel"
                    android:textStyle="bold"
                    android:textSize="16sp"
                    android:textColor="#fff"/>

                <TextView
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:text="Team Name"
                    android:id="@+id/teamNameLabel"
                    android:textColor="#fff"
                    android:textSize="16sp"
                    android:textStyle="bold"/>

                <TextView
                    android:layout_width="55dp"
                    android:layout_height="wrap_content"
                    android:text="Points"
                    android:id="@+id/pointsLabel"
                    android:textStyle="bold"
                    android:textSize="16sp"
                    android:textColor="#fff"/>
            </TableRow>

        </TableLayout>
    </ScrollView>
</LinearLayout>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/pageLoading"
    android:background="@color/transparent">

    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar4"
        android:layout_gravity="center_horizontal"
        android:layout_centerInParent="true"
        android:background="#00000000"/>
</RelativeLayout>