我正在
Android 5.0上迁移我的应用程序,即Lollipop设备,我有关于进度对话的问题,它在棒棒糖设备上完美运行,但在棒棒糖上它有白色背景,如图所示
但在棒棒糖前设备中它具有透明背景
以下是我的代码:
布局中的progress.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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/progressBar3" style="?android:attr/progressBarStyleHorizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/transparent" android:layout_centerHorizontal="true" android:indeterminate="true" android:indeterminateDrawable="@drawable/myprogress" android:minHeight="48dp" /> </RelativeLayout>
drawable中的myprogress.xml
<shape android:shape="oval" android:useLevel="false" > <size android:height="48dip" android:width="48dip" /> <gradient android:centerColor="#ff001100" android:centerY="0.50" android:endColor="#ffffffff" android:startColor="#ff000000" android:type="sweep" android:useLevel="false" /> </shape>
在Java中我正在使用这样的
public ProgressDialog mProgressDialog; if (mProgressDialog != null && mProgressDialog.isShowing()) { mProgressDialog.cancel(); } mProgressDialog = new ProgressDialog(context); mProgressDialog.setCancelable(false); mProgressDialog.show(); mProgressDialog.setContentView(R.layout.progress);
解决方法
问题是棒棒糖的白色背景.
解决方案中的任何一个(两者都相同):
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
要么
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));