Autore Topic: ImageView con bordo  (Letto 1101 volte)

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
ImageView con bordo
« il: 10 Gennaio 2012, 01:45:19 CET »
0
Avete presente la GidView, quando un elemento viene premeto e si crea un bordo attorno all'elemento stesso?
Scompare non appena la pressione del dito non c'è più.

Mi serve lo stesso effetto su un elemento della ImageView.

Qualche suggerimento?

Grazie

Offline Imran3

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:ImageView con bordo
« Risposta #1 il: 10 Gennaio 2012, 18:23:41 CET »
0
prova a definire il padding del'immagine e setta il colore del bordo (lo fai settando il colore di sfondo, background)
codice:
Codice (XML): [Seleziona]
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/immagine"
[b]android:background="#000000"
android:padding="1dp[/b]"/>
Codice (XML): [Seleziona]
 android:background="#000000"
android:padding="1dp

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:ImageView con bordo
« Risposta #2 il: 10 Gennaio 2012, 20:07:54 CET »
0
mi servirebbe quando il dito preme sulla imageview
e che si levi quando il dito viene levato

al fine mi serve come indicatore che è stata premuta QUELLA imageview

grazie del tuo aiuto

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:ImageView con bordo
« Risposta #3 il: 10 Gennaio 2012, 22:27:36 CET »
0
ci possono essere vari modi per farlo,
il piu semplice sarebbe modificare il colore di sfondo quando il l'imageview viene premuta..

altra soluzione è giocare con il padding,mettendo nell'xml il padding a 1sp per l'imagebutton in questione e poi facendo cosi nell'activity:
Codice (Java): [Seleziona]
    image.setOnTouchListener(new View.OnTouchListener() {
               

        public boolean onTouch(View v, MotionEvent event){
            ImageView image = (ImageView)findViewById(R.id.image);
                if(event.getAction()==MotionEvent.ACTION_DOWN){
                        image.setPadding(5, 5, 5, 5);
 
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_MOVE){
                       
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_UP){
                        image.setPadding(1, 1, 1, 1);
               // qua metterai quello che devi fare, tipo intent o altro che avresti messo nell'onclick

                    return true;
                }      
                return false;
        }
    });
altrimenti potresti creare 2 immagini per ogni pulsante...la prima normale, la seconda con il bordo colorato simile all'effetto di cui parli e poi gestirle in questo modo:
Codice (Java): [Seleziona]
   image.setOnTouchListener(new View.OnTouchListener() {
               

        public boolean onTouch(View v, MotionEvent event){

                if(event.getAction()==MotionEvent.ACTION_DOWN){
                        image.setImageResource(R.drawable.immagine_con_bordi);
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_MOVE){
                       
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_UP){
                    image.setImageResource(R.drawable.immagine_senza_bordi);

                // qua metterai quello che devi fare, tipo intent o altro che avresti messo nell'onclick
                    return true;
                }      
                return false;
        }
    });
« Ultima modifica: 12 Gennaio 2012, 05:25:06 CET da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:ImageView con bordo
« Risposta #4 il: 12 Gennaio 2012, 04:56:18 CET »
0
Grazie. Farò delle prove e vedo.
Sei stato molto gentile.

Grazie ancora.

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:ImageView con bordo
« Risposta #5 il: 12 Gennaio 2012, 05:37:51 CET »
0
altro metodo...piu veloce e semplice :D
Codice (Java): [Seleziona]
final ImageView image = (ImageView)findViewById(R.id.image);
image.setPadding(1, 1, 1, 1);
image.setOnTouchListener(new View.OnTouchListener() {
               

        public boolean onTouch(View v, MotionEvent event){

                if(event.getAction()==MotionEvent.ACTION_DOWN){
                        image.setBackgroundColor(Color.GREEN);
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_MOVE){
                       
                    return true;
                }
                if(event.getAction()==MotionEvent.ACTION_UP){
                        image.setBackgroundColor(Color.TRANSPARENT);
               // qua metterai quello che devi fare, tipo intent o altro che avresti messo nell'onclick

                    return true;
                }      
                return false;
        }
    });
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline belalugosi

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy
  • Sistema operativo:
    Minuetos
Re:ImageView con bordo
« Risposta #6 il: 15 Gennaio 2012, 05:23:29 CET »
0
Grazie per i consigli. Alla fine è venuto fuori il risultato chiesto.