在android中运行progressbar时设置背景屏幕模糊

时间:2014-11-18 11:10:04

标签: android

当进度条滚轮在andorid中运行时,任何人都知道如何设置背景模糊器。我希望当圆形滚轮进度条运行且后台没有交互时,该屏幕看起来像模糊。

4 个答案:

答案 0 :(得分:2)

将ProgressBar控件放到layout xml

    <ProgressBar
        android:id="@+id/progressBarDialog"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:visibility="gone"
        android:indeterminateDrawable="@drawable/myDialog" >
   </ProgressBar>

将ID分配到activity

    private ProgressBar bar;
    bar = (ProgressBar) findViewById(R.id.progressBarDialog);

创建一个名为myDialog.xml的

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360">

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false">
        <size
            android:width="48dip"
            android:height="48dip" />

        <gradient
            android:centerColor="@color/color_preloader_center"
            android:centerY="0.50"
            android:endColor="@color/color_preloader_end"
            android:startColor="@color/color_preloader_start"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>

将以下代码放在 colors.xml

 <color name="color_preloader_start">#000000</color>
 <color name="color_preloader_center">#000000</color> 
 <color name="color_preloader_end">#ff56a9c7</color> 

答案 1 :(得分:0)

在xml中使用简单的进度条 使用依赖

 a = '\0';  to *a = '\0';

将id(内容)提供给您希望在进度条中模糊的xml

compile 'jp.wasabeef:blurry:2.1.1' in build.gradle

在java中复制这个blurall()函数

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/content"
xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"

第一次调用blurall()函数会模糊你的所有屏幕,第二次调用blurall()函数会删除blur.Call blurall()函数,在进度条启动之前就像

private void blurall() {


        if (blurred) {
            Blurry.delete((ViewGroup) findViewById(R.id.content));
        } else {
            long startMs = System.currentTimeMillis();
            Blurry.with(viewprofile.this)
                    .radius(25)
                    .sampling(2)
                    .async()
                    .animate(500)
                    .onto((ViewGroup) findViewById(R.id.content));
            Log.d(getString(R.string.app_name),
                    "TIME " + String.valueOf(System.currentTimeMillis() - startMs) + "ms");
        }

        blurred = !blurred;


}

之后再次调用blurall()函数

blurall();
progressBar.setVisibility(View.VISIBLE);

答案 2 :(得分:0)

我正在使用此代码,因为我需要与您相同,这也最符合您的要求。

您可以在基本活动类中编写此代码,并将其用作您的要求。

ViewGroup progressView;
protected boolean isProgressShowing = false;

public void showProgressingView() {

    if (!isProgressShowing) {
        isProgressShowing = true;
        progressView = (ViewGroup) getLayoutInflater().inflate(R.layout.progressbar_layout, null);
        View v = this.findViewById(android.R.id.content).getRootView();
        ViewGroup viewGroup = (ViewGroup) v;
        viewGroup.addView(progressView);
    }
}

public void hideProgressingView() {
    View v = this.findViewById(android.R.id.content).getRootView();
    ViewGroup viewGroup = (ViewGroup) v;
    viewGroup.removeView(progressView);
    isProgressShowing = false;
}

此处progressbar_layout.xml

   <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#BA000000">

    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_centerInParent="true"
        />

</RelativeLayout>
  • 这是一种简单而简洁的方法。
  • 您可以以任何方式,任何颜色,任何风格自定义progressbar_layout
  • 摆脱默认的android进度条

答案 3 :(得分:0)

只需在您的Java代码中添加此行

df.repartition($"country_id").mapPartition()