Autore Topic: Claase Gallery deprecata, come fare?  (Letto 398 volte)

Offline jokermanna

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S1
  • Sistema operativo:
    Windows 7
Claase Gallery deprecata, come fare?
« il: 30 Luglio 2013, 15:45:04 CEST »
0
Buongiorno a tutti,

dopo aver girovagato un po' ho trovato come ottenere una gallery con adapter , di seguito il codice :

Codice (XML): [Seleziona]
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:orientation="vertical" android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/travature">
     
   
    <Gallery
       android:id="@+id/gallery"
        android:layout_width="fill_parent"
       android:layout_height="wrap_content"></Gallery>
    <ImageView
       android:id="@+id/ingrandimento"
       android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
       android:layout_width="match_parent"
       android:layout_height="match_parent"></ImageView>
</RelativeLayout>

Codice (Java): [Seleziona]
package com.example.beblegno;

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;



public class Coperture extends Activity {
        final private Integer[] mImageIds = {
                R.drawable.legno,
                R.drawable.buttonstart,
                R.drawable.chisiamo
                };
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_coperture);
       
       
                Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
 
        g.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(@SuppressWarnings("rawtypes") AdapterView parent, View v, int position, long id) {
               
                ImageView imageview = (ImageView) findViewById(R.id.ingrandimento);
                imageview.setImageResource(mImageIds[position]);
                Toast.makeText(Coperture.this, "" + position   , Toast.LENGTH_SHORT).show();
               
                               
            }
        });
    }
       
        public class ImageAdapter extends BaseAdapter {
            int mGalleryItemBackground;
            private Context mContext;
         
            private Integer[] mImageIds = {
                    R.drawable.legno,
                    R.drawable.buttonstart,
                    R.drawable.chisiamo
            };
         
            public ImageAdapter(Context c) {
                mContext = c;
                TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery);
                mGalleryItemBackground = a.getResourceId(
                        R.styleable.HelloGallery_android_galleryItemBackground, 0);
                a.recycle();
            }
         
            public int getCount() {
                return mImageIds.length;
               
            }
         
            public Object getItem(int position) {
                return position;
            }
         
            public long getItemId(int position) {
                return position;
            }
         
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView i = new ImageView(mContext);
               
                i.setImageResource(mImageIds[position]);
                i.setLayoutParams(new Gallery.LayoutParams(240, 150));
                i.setScaleType(ImageView.ScaleType.FIT_XY);
                i.setBackgroundResource(mGalleryItemBackground);
         
                return i;
            }
        }

Eclipse mi dice che la classe Gallery è deprecata, con che widget posso ottenere lo stesso effetto?
Sul mio samsung con android 2.3.2 funziona con la gallery , ma credo che poi non andrebbe con versioni più aggiornate dell' OS.

Grazie mille per eventuali soluzioni.

P.s. Ho provato a sostituire la Gallery con la ListView e ovviamente me le mostra in verticale le immagini, c'è un modo per metterle in orizzontale?

 

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Claase Gallery deprecata, come fare?
« Risposta #1 il: 30 Luglio 2013, 16:11:43 CEST »
0
ViewPager è l'alternativa ufficiale
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia