2010-10-05 16 views
1

Je l'affichage d'un ProgressBar dans Android, comme on le voit ci-dessous:dialogue ProgressBar Sans frontière

alt text

mais il y a une bordure blanche autour de la barre de progression. Que faire si je ne souhaite afficher aucune bordure?

En d'autres termes, seul le cercle et le texte de la barre de progression doivent apparaître dans la boîte de dialogue de la barre de progression.

Comment afficher la barre de progression comme indiqué ci-dessous? (Comment afficher une boîte de dialogue de progression que la recherche dans l'image ci-dessous :)

alt text

Mise à jour: J'échoué à trouver une solution pour cela, mais je pense qu'il devrait y avoir astuce pour afficher une boîte de dialogue de progression de cette manière. Je veux dire qu'il devrait y avoir un moyen d'étendre certains styles dans styles.xml. S'il vous plaît, n'importe qui se concentre sur cette question et m'aide à afficher un tel dialogue.

+0

Pouvez-vous donner une direction? savez-vous quels sont les stles utilisés dans ce dialogue? Le plus souvent, le style sera défini dans la classe ProgressDialog ou celle dont elle provient. Une fois que vous savez que vous pouvez aller chercher les attributs stles et attr xmls et vérifier l'attribut que vous voulez remplacer. – codeScriber

+0

oh presque oublié: 1. si vous avez besoin du code je l'ai sur mon PC bien qu'il soit avialable par gitweb ... 2. je jetterais un coup d'oeil sur le code du widget lui-même, la plupart des chnaces il utilise juste quelques bémols que vous pouvez prendre et utiliser dans votre propre widget comme l'application TripAdvisor. 3.last but not least ;-) essayer d'utiliser android: background = "transparent" – codeScriber

Répondre

2

Après quelques expériences que je suis arrivé à la suivante:

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

Si j'utilise ce thème comme un style pour un Activity je reçois pas de cadre. Si vous utilisez ceci avec le constructeur Dialog: Dialog (context, theme) vous n'obtenez aucune image.

+0

merci pour le soutien –

1

vous avez encore des idées pour cela? J'ai implémenté la même chose dans mon application, mais pas comme un dialogue, j'avais deux mises en page qui se chevauchent. Je retourne ensuite entre les deux dispositions en réglant la visibilité .setVisibility(). En ce qui concerne la barre de progression réelle elle-même, j'utilise ceci:

EDIT: Voici mon fichier XML tout:

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

J'utilise cette disposition pour un Activity avec un AsyncTask, donc onPreExecute(), je fais quelque chose comme:

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

et puis faire ce que je dois faire, et je onPostExecute():

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

Salut merci de me laisser savoir à propos d'une autre façon et encore je dois mettre en œuvre la même chose, et je didn Pas exactement votre idée, pouvez-vous poster l'ensemble du fichier XML pour la même mise en page? –

+0

J'ai édité ma réponse hier pour expliquer plus loin. – Zarah