ProgressDialog旋转圈

我想实现像这样的ProgressDialog,没有额外的帧: PIC

但是我得到这个。 我怎么能改变这个?

在这里输入图像说明

这是我的ProgressDialog代码。 提前致谢

private ProgressDialog mProgressDialog; ............ mProgressDialog = new ProgressDialog(activity); mProgressDialog.setIndeterminate(false); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); ............ public class ProgressTask extends AsyncTask <Fragment,Void,Fragment>{ @Override protected void onPreExecute(){ mProgressDialog.show(); } @Override protected Fragment doInBackground(Fragment... arg0) { //my stuff is here } @Override protected void onPostExecute(Fragment result) { mProgressDialog.dismiss(); } } 

只需从布局中的ProgressBar更改为ProgressDialog即可:

RES / layout.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > //Your content here </LinearLayout> <ProgressBar android:id="@+id/progressBar" 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/progress" > </ProgressBar> </RelativeLayout> 

SRC / yourPackage / YourActivity.java

 public class YourActivity extends Activity{ private ProgressBar bar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); bar = (ProgressBar) this.findViewById(R.id.progressBar); new ProgressTask().execute(); } private class ProgressTask extends AsyncTask <Void,Void,Void>{ @Override protected void onPreExecute(){ bar.setVisibility(View.VISIBLE); } @Override protected Void doInBackground(Void... arg0) { //my stuff is here } @Override protected void onPostExecute(Void result) { bar.setVisibility(View.GONE); } } } 

drawable / progress.xml这是我用来改变默认颜色的自定义ProgressBar

 <?xml version="1.0" encoding="utf-8"?> <!-- Duration = 1 means that one rotation will be done in 1 second. leave it. If you want to speed up the rotation, increase duration value. in example 1080 shows three times faster revolution. make the value multiply of 360, or the ring animates clunky --> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:duration="1" android:toDegrees="360" > <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="8" android:useLevel="false" > <size android:height="48dip" android:width="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> 

把这个XML只显示轮子:

 <ProgressBar android:indeterminate="true" android:id="@+id/marker_progress" style="?android:attr/progressBarStyle" android:layout_height="50dp" /> 

我正在使用View.INVISIBLE和View.VISIBLE和ProgressBar将缓慢闪烁,而不是不断可见,切换到View.GONE和View.VISIBLE,它完美的作品

尝试这个………

 ProgressDialog pd1; pd1=new ProgressDialog(<current context reference here>); pd1.setMessage("Loading...."); pd1.setCancelable(false); pd1.show(); 

解雇….

 if(pd1!=null) pd1.dismiss();