Я показываю ProgressBar
в Android, как показано ниже:
но вокруг индикатора выполнения есть белая рамка. Что делать, если я не хочу отображать какую-либо границу?
В этом случае в диалоговом окне индикатора выполнения должен отображаться только круг и текст строки выполнения.
Как отобразить индикатор выполнения, как показано ниже? (Как отобразить диалоговое окно выполнения в качестве поиска в следующем изображении:)
Update: Мне не удалось найти решение для этого, но я думаю, что здесь должен быть какой-то трюк, чтобы отобразить диалог индикатора прогресса таким образом. Я хочу сказать, что должен быть способ, расширяя некоторые стили в styles.xml. Пожалуйста, кто-нибудь сосредоточится на этом вопросе и поможет мне отобразить такой диалог.
вы можете эту ссылку Как легко подсчитать индикатор прогресса в ProgressDialog (когда заголовок/текст не пройден), вы можете написать ссылку на эту ссылку, я надеюсь, что это поможет вам
После некоторых экспериментов я пришел к следующему:
<?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
: Диалог (контекст, тема), вы не получаете фрейма.
Вам все еще нужны идеи для этого? Я реализовал то же самое в своем приложении, но не как диалог, у меня было два макета, которые перекрывают друг друга. Затем я переворачиваю между двумя макетами, устанавливая видимость .setVisibility()
. Что касается собственно бара выполнения, я использую это:
EDIT: здесь весь мой 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);
}