Autore Topic: come ottenere il riferimento ad un'immagine da un adapter  (Letto 469 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
come ottenere il riferimento ad un'immagine da un adapter
« il: 26 Dicembre 2013, 17:20:08 CET »
0
Ho questo codice funzionante, che serve a visualizzare delle immagini, scorrendo il dito da dx a sx si passa all'immagine successiva. La schermata è fatta da 2 parti, nella parte di sopra c'è la galleria, nella parte di sotto ci sono 6 immagini
Devo modificarlo e fare in modo che quando si visualizza l'immagine successiva della galleria, cambia anche una delle immagini che si trova sotto la mia galleria, ad esempio imagePreview0
Ho provato a modificare la classe adapter, ma non riesco ad ottenere il riferimento all'immagine di sotto, in particolare ho scritto questo codice:
ImageView imageViewPreview0 = (ImageView) view.findViewById(R.id.imagePreview0);
che genera un nullpointer perchè sto applicando il metodo findViewById, ad un oggetto view che non è quello corretto, a chi devo applicare il metodo findViewById per avere un riferimento all'immagini con id imagePreview0?


Codice (Java): [Seleziona]
public class ShowDetailsActivity extends BaseActivity {

        ViewPager pager;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.show_details_layout);
                Bundle bundle = getIntent().getExtras();
                assert bundle != null;
                String[] imageUrls = bundle.getStringArray(Constants.IMAGES);
                pager = (ViewPager) findViewById(R.id.pager);
                pager.setAdapter(new ImagePagerAdapter(imageUrls));
        }


        private class ImagePagerAdapter extends PagerAdapter {

                private String[] images;
                private LayoutInflater inflater;

                ImagePagerAdapter(String[] images) {
                        this.images = images;
                        inflater = getLayoutInflater();
                }

                @Override
                public void destroyItem(ViewGroup container, int position, Object object) {
                        container.removeView((View) object);
                }

                @Override
                public int getCount() {
                        return images.length;
                }

                @Override
                public Object instantiateItem(ViewGroup view, int position) {
                        View imageLayout = inflater.inflate(R.layout.item_pager_image,
                                        view, false);
                        assert imageLayout != null;
                        ImageView imageView = (ImageView) imageLayout
                                        .findViewById(R.id.image);

                        final ProgressBar spinner = (ProgressBar) imageLayout
                                        .findViewById(R.id.loading);

                        imageLoader.displayImage(images[position], imageView, options,
                                        new SimpleImageLoadingListener() {
                                                @Override
                                                public void onLoadingStarted(String imageUri, View view) {
                                                        spinner.setVisibility(View.VISIBLE);
                                                }
                                                @Override
                                                public void onLoadingComplete(String imageUri,
                                                                View view, Bitmap loadedImage) {
                                                        spinner.setVisibility(View.GONE);
                                                }
                                        });

                        ImageView imageViewPreview0 = (ImageView) view.findViewById(R.id.imagePreview0);
                        imageViewPreview0.setBackgroundResource(R.drawable.ic_img_gallery_index_pressed); -> nullpointer
                        view.addView(imageLayout, 0);
                        return imageLayout;
                }
        }

}

show_details_layout.xml
Codice (XML): [Seleziona]
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" >

        <android.support.v4.view.ViewPager
           xmlns:android="http://schemas.android.com/apk/res/android"
           android:id="@+id/pager"
           android:layout_width="fill_parent"
           android:layout_height="374dip"
           android:background="#ffffff" />

        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal" >

            <ImageView
               android:id="@+id/imagePreview0"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />

            <ImageView
               android:id="@+id/imagePreview1"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />

            <ImageView
               android:id="@+id/imagePreview2"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />

            <ImageView
               android:id="@+id/imagePreview3"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />

            <ImageView
               android:id="@+id/imagePreview4"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />

            <ImageView
               android:id="@+id/imagePreview5"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_margin="3dip"
               android:scaleType="centerCrop" />
        </LinearLayout>





</ScrollView>

item_pager_image.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:padding="1dip" >

    <ImageView
       android:id="@+id/image"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:adjustViewBounds="true"
       android:contentDescription="descrizione" />


    <ProgressBar
       android:id="@+id/loading"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:visibility="gone" />

</FrameLayout>