2013-04-05 11 views
6

Desidero modificare tutti i toast nella mia app modificando themes.xml.Come impostare lo stile toast come tema?

Sto usando <item name="buttonStyle">@style/MyButton</item> di cambiare i bottoni, c'è qualcosa di simile con toast, o devo per creare e utilizzare MyToast classe che estende il built-in Toast?

risposta

5

È possibile modificare lo sfondo del vostro Toast con questo:

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

grazie Ahmad, c'è qualche altra personalizzazione piuttosto che lo sfondo? in secondo luogo c'è una tabella per tutti i nomi degli oggetti come 'android: toastFrameBackground' – guness

+0

@bluebrain non è possibile impostare la gravità ecc. con gli stili (come fas come posso dire), dovrete farlo programmaticamente. Android è open source, quindi puoi trovare tutto qui: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml – Ahmad

+2

Puoi cambiare lo sfondo? Come indicato da altri post su SO, toastFrameBackgound non è pubblico. Sull'API 18, viene visualizzato un errore che indica che non è stata trovata alcuna risorsa corrispondente a tale nome. http://stackoverflow.com/questions/19215326/styles-toast-background-no-resource-found-that-matches-the-given-name – spaaarky21

-3

Prova questo:

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

non vedo tutto ciò che riguarda 'tema' (che è legato al globale, non un singolo brindisi), puoi per favore elaborare la risposta? – guness