Il Forum è consultabile solo in modalità lettura. Per domande o consigli iscriviti al nostro GRUPPO FACEBOOK / COMMUNITY cliccando qui

problema visualizzazione gallery

Discussion in 'Development' started by Bazz, Aug 29, 2012.

  1. Bazz

    Bazz Worker Droid

    Joined:
    Aug 9, 2012
    Messages:
    61
    Likes Received:
    1
    ciao
    scusate se scrivo troppi post ,
    ho il seguente problema ;
    se cerco di visualizzare una gallery di foto mi da come risultato la prima foto ed una striscia nera verticale
    (forse parte delle foto successive) , credo che siano tutte sovrapposte ;
    ho preso spunto da esempi su web , ecco il codice :

    galleria.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:id="@+id/galleriaLayout">
        
        <Button
            android:id="@+id/ritorna"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="torna" />
        
        <Gallery android:id="@+id/gallery" 
                 android:layout_width="wrap_content" 
                 android:layout_height="wrap_content">    
        </Gallery>
        
    </LinearLayout>
    

    galleria_riga.xml (credo non serva, giusto ?) :
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:id="@+id/gallery_item">
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:scaleType="fitXY"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:src="@drawable/foto1" />
            
    </LinearLayout>
    
    Galleria_act.java
    Code:
    package com.example.pippo;
    
    import java.util.ArrayList;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.Gallery;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.Toast;
    
    public class GalleriaAct extends Activity {
    	
        protected Context mContext; 
        protected ArrayList<String>  mat2;
        @SuppressWarnings("deprecation")
    	private Gallery galleria1 ;
        private imgAdapter imgAdapt ;
    	
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.galleria);
            mContext = this;
            
            Intent int2 = getIntent();
            
           // Find the Gallery resource.          
           galleria1 = (Gallery) findViewById( R.id.gallery );
          
          // Collegamento con la sorgente dati da visualizzare.  
           imgAdapt = new imgAdapter(this);  
        	
           // Set the ArrayAdapter as the Gallery adapter.  
           galleria1.setAdapter( imgAdapt );
           
           //@override 
           galleria1.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
                            Toast.makeText(GalleriaAct.this, "" + position, Toast.LENGTH_SHORT).show(); 
                     	    }
           });
            
        }
    
    }
    
    
    imdAdapter.java
    Code:
    package com.example.pippo;
    
    import java.util.ArrayList;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.Gallery;
    
    public class imgAdapter extends BaseAdapter {
      private final Context context;
    
      // Keep all Images in array
      public Integer[] mThumbIds = {	
    	         R.drawable.foto1, R.drawable.foto2,
    	         R.drawable.foto3, R.drawable.foto4,
    	         R.drawable.foto5, R.drawable.foto6,
    	         R.drawable.foto7, R.drawable.foto8,
                 R.drawable.foto9
      };
      
      public imgAdapter(Context context) {
        this.context = context;
      }
    
      //@Override
      public int getCount() {
          return mThumbIds.length;
      }
    
      //@Override
      public Object getItem(int position) {
          return null;
      }
    
      public long getItemId(int position) {
          return 0;
      }
    
      //@Override
      public View getView(int position, View convertView, ViewGroup parent) {
          ImageView imageView = new ImageView(context);
          imageView.setImageResource(mThumbIds[position]);
          return imageView;
      	}
      
    } 
    
    
    cosa succede ?
    grazie, ciao

    P.S. unsa domanda : perchè bisogna scrivere la riga //@override ? , non è un commento in java ?
     
    Last edited: Aug 29, 2012
  2. acer1629

    acer1629 Worker Droid

    Joined:
    Aug 22, 2012
    Messages:
    113
    Likes Received:
    22
    Per il tag <Gallery> proverei a sostituire questi :
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    con questi :
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    Vedi che risultato ti da e postaci una print screen nel caso non andasse bene.
     
  3. Bazz

    Bazz Worker Droid

    Joined:
    Aug 9, 2012
    Messages:
    61
    Likes Received:
    1
    perfetto , grazie mille
    ora funziona , ma le foto sono tutte appiccicate .. , come si fa per separarle un pò ?

    se volessi evidenziare una delle foto e visualizzarla ingrandita ?

    riguardo alla domanda : perchè bisogna scrivere la riga //@override ? , non è un commento in java ?

    scusa la gragnuola di domande

    grazie ancora

    ciao
     
  4. acer1629

    acer1629 Worker Droid

    Joined:
    Aug 22, 2012
    Messages:
    113
    Likes Received:
    22
    Penso che //@override scritto cosi non serva a nulla, è sicuramente un commento inserito in quel punto specifico per indicare che stai riscrivendo un metodo della classe che stai estendendo.
    L'unico commento che viene preso in considerazione in JAVA comincia con /** e finisce con */ e sono quei commenti che verranno poi usati nella generazione automatica della documentazione tramite javadoc.
    Tutto ciò che comincia con // è un commento e come tale non serve a nulla nel runtime.
    Per la questione spazio tra le immagini ... prova da codice a usare il metodo imageView.setPadding(int left, int top, int right, int bottom); passandogli 4 int dovrebbe darti la giusta spaziatura.
    Per l'ingrandimento sinceramente non saprei ... spulciati la documentazione in merito alla gallery, magari trovi qualcosa di utile ... anzi quasi sicuramente negli esempi di Android che scarichi con l'SDK c'è qualcosa che fa al caso tuo.
    Ti consiglio di leggere anche questo : Grid View | Android Developers ;)
     
  5. Bazz

    Bazz Worker Droid

    Joined:
    Aug 9, 2012
    Messages:
    61
    Likes Received:
    1
    grazie mille ,
    per fare una galleria orizzontale di immagini c'è un altro layout da utilizzare ?
    mi sembra che , a parte listview che però è verticale , gli altri siano fissi , o sbaglio ?
    scusa se approfitto , a proposito di //@overrid , ho visto che non devo togliere le //
    sennò mi da errore ,
    grazie
    ciao
     
  6. acer1629

    acer1629 Worker Droid

    Joined:
    Aug 22, 2012
    Messages:
    113
    Likes Received:
    22
    L'override qui è spiegato benissimo e in modo semplice Override - Wikipedia
    Se ti da errore è perchè stai modificando nel modo errato il metodo che stai ereditando. Che errore ti da ?
    In teoria @override non è altro che una notazione che ti aiuta a capire se effettivamente stai modificando il metodo ereditato.
    Guarda la sezione "Annotazione sull'override" del link che ti ho passato e capirai ! ;)
    Per la disposizione se provi a settare nel file galleria_riga.xml il LinearLayut con orientamento in verticale ?
    Non cambia ?
     
  7. Bazz

    Bazz Worker Droid

    Joined:
    Aug 9, 2012
    Messages:
    61
    Likes Received:
    1
    grazie mille
    ciao