2015-05-19 20 views
6

Tôi đang di chuyển ứng dụng của mình trên Android 5.0 tức là thiết bị Lollipop, tôi gặp sự cố liên quan đến hộp thoại tiến trình, Nó hoạt động hoàn hảo trên các thiết bị lollipop trước, nhưng trên kẹo có nền trắng như được hiển thị trong hình ảnh enter image description hereĐối thoại tiến trình có nền trắng trên các thiết bị Lollipop,

Nhưng trong các thiết bị kẹo trước nó là nền trong suốt enter image description here

Dưới đây là mã của tôi:

progress.xml trong cách bố trí

<?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> 

myprogress.xml trong drawable

<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> 

và trong Java tôi đang sử dụng như thế này

public ProgressDialog mProgressDialog; 

    if (mProgressDialog != null && mProgressDialog.isShowing()) { 
      mProgressDialog.cancel(); 
     } 

     mProgressDialog = new ProgressDialog(context); 
     mProgressDialog.setCancelable(false); 

     mProgressDialog.show(); 
     mProgressDialog.setContentView(R.layout.progress); 
+0

Thay đổi chủ đề ứng dụng trong 'style.xml' thành chủ đề tối và hộp thoại phải tối – M090009

+0

tôi không muốn tối tối, tôi muốn nền trắng như trong suốt – theLazyFinder

Trả lời

2

Có vẻ như bạn đã có giải pháp ngay bây giờ, nhưng nếu bất kỳ ai khác đang gặp sự cố tương tự; Tôi thấy rằng việc ghi đè chủ đề của ProgressDialog trong constructor đã làm việc cho tôi. Một cái gì đó như:

mProgressDialog = new ProgressDialog(context, ProgressDialog.THEME_HOLO_LIGHT); 
+2

Tác phẩm này nhưng THEME.HOLO.LIGHT không được dùng nữa. Có cách nào khác không? –

4

Vấn đề là nền trắng trên kẹo.

giải pháp một trong hai (cả hai đều giống nhau mặc dù):

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

hoặc

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
2

Bạn cũng có thể tạo ra một phong cách và giao cho phong cách vào hộp thoại:

ProgressDialog dialog = new ProgressDialog(context, R.style.ProgressDialogStyle); 

Kiểu (trong style.xml):

<style name="ProgressDialogStyle" parent="android:Theme.Holo.Light.Dialog"> 
    <item name="android:windowBackground">@color/color_transparent</item> 
</style> 
Các vấn đề liên quan