Autore Topic: Bottone "onHover", posso?  (Letto 629 volte)

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Bottone "onHover", posso?
« il: 25 Febbraio 2011, 15:39:52 CET »
0
Ragazzi sarà banale ma non trovo una risposta a questa domanda...
come faccio a gestire l'hover su un bottone?
Quando lo schiaccio col dito, il background del bottone deve cambiare, non sò se mi spiego... un pò come i bottoni in html o qua sul forum, un pò come l'hover di un link html.
Come faccio?
Codice: [Seleziona]
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.index);
        intent=new Intent(getApplicationContext(),Browser.class);
        Button button=(Button)findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener(){
                public void onClick(View v){
                        startActivity(intent);
                }
        });
    }

Codice: [Seleziona]
    <Button android:background="@drawable/rand2"
android:text=""
android:layout_width="320dip"
android:layout_height="178dip"
android:id="@+id/button1"></Button>

Grazie ragazzi.

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Bottone "onHover", posso?
« Risposta #1 il: 25 Febbraio 2011, 17:09:10 CET »
0
Se vuoi qualcosa di già pronto puoi utilizzare i ToggleButton | Android Developers.
Se invece vuoi qualcosa di custom puoi crearti una tua grafica per il pulsante seguendo questo tutorial (dovrebbe funzionare anche coi Toggle): [facile] Button con background personalizzato ridimensionabile - Android Developers Italia
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Bottone "onHover", posso?
« Risposta #2 il: 25 Febbraio 2011, 17:17:51 CET »
0
Potresti gestirti direttamente dall'onClick il backgrounde del pulsante:

Codice (Java): [Seleziona]
public void onClick(View v) {
                               
   Button button = (Button) v;
   button.setBackgroundColor(Color.parseColor("#886666cc"));
   ...
}

Assicurati, però, che quando ricrei il layout (all'onCreate e/o all'onResume) di ripristinare il background così come in origine.....

@JD: ma con i toggleButton come si gestisce il cambio del background?

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Bottone "onHover", posso?
« Risposta #3 il: 25 Febbraio 2011, 17:19:10 CET »
0
« Ultima modifica: 25 Febbraio 2011, 17:21:44 CET da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Bottone "onHover", posso?
« Risposta #4 il: 25 Febbraio 2011, 17:20:49 CET »
0
si, avevo controllato, ma non mi sembra di avere trovato molto.
Cioè: si potrebbe gestire, ma forse bisogna estendere la classe....tanto traffico per nulla, quindi.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Bottone "onHover", posso?
« Risposta #5 il: 25 Febbraio 2011, 17:21:24 CET »
0
Visto l'edit?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline zak84

  • Utente normale
  • ***
  • Post: 165
  • Respect: +2
    • Mostra profilo
Re:Bottone "onHover", posso?
« Risposta #6 il: 25 Febbraio 2011, 17:23:18 CET »
0
eh ma così (con button.setBackgroundColor(Color.parseColor("#886666cc"));) il colore cambia solo quando lascio il dito, non mentre lo sto premendo, e poi io devo cambiare immagine non colore.
scusate se vi assillo, ma trovo l'apprendimento un pò difficilotto in rapporto alle cose che programmo normalmente
« Ultima modifica: 25 Febbraio 2011, 17:25:06 CET da zak84 »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Bottone "onHover", posso?
« Risposta #7 il: 25 Febbraio 2011, 17:32:41 CET »
0
beh, potresti gestirti l'ontouch......per quando i vai su.
Comunque, la soluzione di JD mi sembra perfetta e non troppo complessa.

@JD: bello quell'edit!
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Bottone "onHover", posso?
« Risposta #8 il: 25 Febbraio 2011, 19:09:39 CET »
+2
Il modo più pulito (e semplice) è usare un selector: Drawable Resources | Android Developers
Codice (XML): [Seleziona]
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_fosused_pressed"/>
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button_pressed"/>
    <item android:state_focused="true" android:drawable="@drawable/button_selected"/>
    <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/button_default"/>
</selector>

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Bottone "onHover", posso?
« Risposta #9 il: 25 Febbraio 2011, 19:25:16 CET »
0
Il modo più pulito (e semplice) è usare un selector: Drawable Resources | Android Developers
Codice (XML): [Seleziona]
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_fosused_pressed"/>
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button_pressed"/>
    <item android:state_focused="true" android:drawable="@drawable/button_selected"/>
    <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/button_default"/>
</selector>

Non è che è il modo più pulito o che altro... E' proprio così che bisogna fare! :D