Диалоговое окно ProgressBar без границ - PullRequest
1 голос
/ 05 октября 2010

Я отображаю ProgressBar в Android, как показано ниже:

alt text

но есть белая рамка вокруг индикатора выполнения. Что если я не хочу отображать какие-либо границы?

Т.е. в диалоге индикатора выполнения должны отображаться только круг и текст индикатора выполнения.

Как отобразить индикатор выполнения, как показано ниже? (Как отобразить диалоговое окно прогресса как поиск на изображении ниже:)

alt text

Обновление: Мне не удалось найти решение для этого, но я думаю, что должен быть какой-то трюк, чтобы отобразить диалоговое окно индикатора выполнения таким образом. Я имею в виду, что должен быть способ расширения некоторых стилей в styles.xml. Пожалуйста, кто-нибудь сосредоточиться на этом вопросе и помочь мне отобразить такой диалог.

Ответы [ 2 ]

2 голосов
/ 16 октября 2010

После некоторых экспериментов я получил следующее:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="my_style" parent="@android:style/Theme.Dialog" >
        <item name="android:windowBackground">@null</item>
    </style>
</resources>

Если я использую эту тему как стиль для Activity, я не получаю фрейма.Если вы используете это с конструктором Dialog: диалог (контекст, тема), вы не получите фрейма.

1 голос
/ 02 декабря 2010

тебе все еще нужны идеи для этого? Я реализовал то же самое в своем приложении, но не в виде диалога, у меня было два макета, которые перекрывают друг друга. Затем я переключаюсь между двумя макетами, устанавливая видимость .setVisibility(). Что касается самого индикатора выполнения, я использую это:

РЕДАКТИРОВАТЬ : Вот весь мой XML-файл:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/background"> 
     <RelativeLayout android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/search_header" android:background="@drawable/header">
           <!-- Some things I need for the header (title, etc) -->
     </RelativeLayout>  
    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:id="@+id/spinner_layout" android:layout_below="@+id/search_header" 
     android:layout_centerHorizontal="true" android:layout_centerVertical="true">
     <ProgressBar android:id="@+id/title_progress_bar"
   style="?android:attr/progressBarStyleSmallTitle"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   android:layout_centerVertical="true"
   android:visibility="visible"
   android:indeterminateOnly="true"/>
  <TextView android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:id="@+id/loading_label" android:text="Loading..." 
   android:layout_gravity="center_vertical" android:layout_marginLeft="5dip">
  </TextView>
 </LinearLayout>
 <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
  android:layout_below="@+id/search_header" android:id="@+id/list_contents">
  <!-- Stuff you want to show after returning from the AsyncTask -->
 </RelativeLayout>    
</RelativeLayout>

Я использую этот макет для Activity с AsyncTask, поэтому onPreExecute(), я делаю что-то вроде:

@Override
protected void onPreExecute(){
 findViewById(R.id.list_contents).setVisibility(View.GONE);
 findViewById(R.id.spinner_layout).setVisibility(View.VISIBLE);
}

А потом делай, что мне нужно, и onPostExecute() У меня есть:

@Override
protected void onPostExecute(Cursor cursor){
 findViewById(R.id.list_contents).setVisibility(View.VISIBLE);
 findViewById(R.id.spinner_layout).setVisibility(View.GONE);
}
...