2013-06-29 3 views
0

Я пытаюсь создать пользовательское диалоговое окно с черным фоном на всем экране и счетчиком в середине.Создание пользовательского диалогового окна с индикатором выполнения в android

Вот мой код

public class ActivityIndicator extends Dialog 
{ 
    private ProgressBar progressBar; 
    private CountDownTimer timer = null; 

    public ActivityIndicator(Context context) 
    { 
     super(context); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_indicator); 
     this.setCancelable(false); 

     progressBar = (ProgressBar) findViewById(R.id.progressBar); 
     progressBar.setMax(200); 
     } 

    @Override 
    public void show() 
    { 
     timer = new CountDownTimer(2000, 1000) 
     { 
      public void onTick(long millisUntilFinished) 
      { 
       progressBar.setProgress((int) millisUntilFinished/10); 
      } 

      public void onFinish() 
      { 

       timer.cancel(); 
       timer.start(); 
      } 
      }; 
    } 

    @Override 
    public void dismiss() 
    { 
     timer.cancel(); 
    } 


} 

и XML Является

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/black" 
    android:alpha="0.6" > 

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

</RelativeLayout> 

В моей MainActivity

mDialog = new ActivityIndicator(this); 
     mDialog.show(); 

Теперь после этого. вызывается onShow(), но ничего не происходит.

Что мне нужно сделать, чтобы добавить все диалоговое окно экрана для отображения на экране. На экране основной активности ничего не отображается. Как и добавление стандартного представления диалогового окна.

enter image description here

+0

В чем проблема? – Blackbelt

+0

Ничего не происходит, диалог не добавляет вид моей активности. –

+2

вы переопределяете шоу, но вы пропустили вызов super.show(); – Blackbelt

ответ

2

Вы пропустили вызвать super.show(); в методе переопределения вами пользовательский диалог. Чтобы удалить фон диалога, вы должны передать в качестве второго аргумента прозрачную тему для своего диалогового экземпляра:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="TransparentDialog"> 
     <item name="android:windowFrame">@null</item> 
     <item name="android:windowBackground">@android:color/transparent</item> 
     <item name="android:background">@android:color/transparent</item> 
    </style> 
</resources> 

mDialog = new ActivityIndicator(this, R.style.TransparentDialog); 
+0

один маленький выпуск. Теперь его работа, но в макете, у меня есть относительный макет и индикатор выполнения. Его работа прекрасна. но он обернут квадратным видом, который имеет серый цвет. Как я могу заставить этот квадрат исчезнуть. Он появляется в середине экрана и внутри него, это мой индикатор прогресса. (Я удалил черный фон и альфа relativeLayout) –

+0

вы можете опубликовать снимок экрана? – Blackbelt

+0

вы можете проверить сейчас –

Смежные вопросы