2015-05-19 9 views
6

Ich bin migrieren meine Anwendung auf Android 5.0 dh Lollipop Geräte, habe ich Problem in Bezug auf Fortschrittdialog, Es funktioniert perfekt auf Pre Lollipop Geräte, aber auf Lollipop hat es weißen Hintergrund wie im Bild gezeigt enter image description hereFortschrittsdialog hat einen weißen Hintergrund auf Lollipop Devices,

Aber in pre Lutscher Geräten ist es aus transparentem Hintergrund ist enter image description here

Unter meinen Code:

progress.xml in Layout

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

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

und in Java Ich mag dieses

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

Ändern Sie Ihr App-Thema in der 'style.xml' zu einem dunklen Thema und die Dialoge sollten dunkel sein – M090009

+0

Ich möchte nicht dunkle Dilog, möchte ich diesen weißen Hintergrund als transparent – theLazyFinder

Antwort

1

verwende ich dieses Problem mit Hilfe dieser Anleitung gelöst

gebe ich nur meine ziehbar in diesen Code

mProgressDialog = new TransparentProgressDialog(context, **R.drawable.progress**); 
     mProgressDialog.setCancelable(false); 

und Ruhecode wie in diesem Beispiel gleich ist.

2

Sieht aus, als ob Sie jetzt eine Lösung haben, aber wenn jemand anderes ein ähnliches Problem hat; Ich fand, dass das Überschreiben des ProgressDialog-Themas im Konstruktor für mich funktionierte. Etwas wie:

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

Dies funktioniert, aber THEME.HOLO.LIGHT ist veraltet. Gibt es eine Alternative? –

4

Problem war ein weißer Hintergrund auf Lutscher.

Lösung entweder der beiden (beide gleich sind aber):

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

oder

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

Sie können auch einen Stil erstellen und den Stil in den Dialog zuweisen:

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

Der Stil (in style.xml):

<style name="ProgressDialogStyle" parent="android:Theme.Holo.Light.Dialog"> 
    <item name="android:windowBackground">@color/color_transparent</item> 
</style>