2013-04-05 9 views
6

Ich möchte alle Toasts in meiner App ändern, indem Sie themes.xml bearbeiten.Wie wird der Toast-Stil als Thema festgelegt?

Ich benutze <item name="buttonStyle">@style/MyButton</item>, um meine Tasten zu ändern, gibt es etwas Ähnliches mit Toasts, oder muss ich MyToast Klasse erstellen und verwenden, die den integrierten Toast erweitert?

Antwort

5

Sie können den Hintergrund Ihres Toast mit diesem ändern:

<style name="myTheme" parent="@android:styles/Theme.Holo"> 
    <item name="android:toastFrameBackground">@android:drawable/my_toast</item> 
</style> 
+0

danke Ahmad, gibt es keine andere Anpassung als Hintergrund? zweitens gibt es eine Tabelle für alle Artikel Namen wie 'android: toastFrameBackground' – guness

+0

@bluebrain können Sie nicht die Schwerkraft usw. mit Stilen (soweit ich sagen kann), müssen Sie das programmatisch tun. Android ist Open Source, Sie können also alles hier finden: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml – Ahmad

+2

Können Sie den Hintergrund ändern? Wie andere SO-Posts darauf hinweisen, ist toastFrameBackgound nicht öffentlich. Auf API 18 erhalte ich eine Fehlermeldung, dass keine Ressource gefunden wurde, die mit diesem Namen übereinstimmt. http://stackoverflow.com/questions/19215326/styles-toast-background-no-resource-found-that-matches-the-given-name – spaaarky21

-3

Versuchen Sie folgendes:

Toast toast=new Toast(this); 
    LayoutInflater inflater=this.getLayoutInflater(); 
    View toastView=inflater.inflate(R.layout.toast_layout, (ViewGroup)findViewById(R.id.toastView)); 
    TextView txtDate=(TextView)toastView.findViewById(R.id.txtDate); 
    txtDate.setText("toast appeared at "+Calendar.getInstance().getTime().toLocaleString()); 
    toast.setGravity(Gravity.CENTER, 0, 0); 
    toast.setView(toastView); 
    toast.show(); 
+7

Ich sehe nicht alles im Zusammenhang mit ‚Thema‘ (die globale verwandt ist, nicht ein einziger Toast) hier, können Sie bitte die Antwort erarbeiten? – guness