Мой загрузочный круг работает нормально, но за ним стоит белая коробка, как видно here. Я потратил несколько часов на поиск решений, и все найденные мной сообщения SO предлагают реализацию, очень похожую на ту, которую я использовал. Я также попытался применить специальную тему к диалогу и установить прозрачность, но это ничего не делало. Я не уверен, что на самом деле белый прямоугольник, так как изменение свойств самого ProgressBar влияет только на квадрат в центре, содержащем изображение.Белый индикатор появляется за индикатором прогресса
У меня есть следующий макет, определенный для моего индикатора выполнения, который выполняется во время моей AsyncTask.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent" >
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"/>
</FrameLayout>
Ниже представлен мой метод для диалога, в котором используется макет, показанный выше.
public static ProgressDialog createProgressDialog(Context mContext) {
ProgressDialog dialog = new ProgressDialog(mContext);
try {
dialog.show();
} catch (WindowManager.BadTokenException e) {
}
dialog.setCancelable(false);
dialog.setContentView(R.layout.progressdialog);
return dialog;
}
public class FetchAcroTask extends AsyncTask<String, Void, String[]> {
Dialog progressDialog = null;
@Override
protected void onPreExecute() {
// Display loading circle
if (progressDialog == null) {
progressDialog = createProgressDialog(AcroActivity.this);
progressDialog.show();
} else {
progressDialog.show();
}
}
@Override
protected String[] doInBackground(String... params) {
if (params.length == 0) {
return null;
}
return GET(params[0]);
}
@Override
protected void onPostExecute(String[] resultStrs) {
if (resultStrs == null) {
acroAdapter.add("No results were found");
} else {
acroAdapter.addAll(resultStrs);
}
// Dismiss loading circle
progressDialog.dismiss();
}
}
}
Заранее благодарен.
Вы создаете диалоговое окно Actuall progress. Вы должны использовать ProgressBar. Найдите его представление по его идентификатору, а затем покажите его или отклоните его. –
Вам нужно сделать свой диалог прозрачным http://stackoverflow.com/questions/10795078/dialog-with-transparent-background-in-android – tachyonflux