0

i am using following code to display remote image with next and previous buttons. clicking on next and previous buttons two or three times it does not show image next image. and bitmap of DisplayLiveImage is null.

can any one check is this a buffer problem? or connection?

ImageView img;
     int CurrentImageIndex;


    protected void onCreate(Bundle savedInstanceState)
    {  

        super.onCreate(savedInstanceState);
        setContentView(R.layout.imageviwer);
        setTitle("some text");



        myRemoteImages = new String[6];
        myRemoteImages[0]="http://www.comparecheapinsurance.com/car-insurance/images/car-insurance-policy.jpg";
        myRemoteImages[1]="http://www.speedace.info/solar_cars/solar_car_images/auburn_university_solar_car_banked_road_test.jpg";
        myRemoteImages[2]="http://zedomax.com/blog/wp-content/uploads/2009/07/car.jpg";
        myRemoteImages[3]="http://www.wallpaperez.net/wallpaper/car/Lamborghini-prototype-car-926.jpg";
        myRemoteImages[4]="http://www.evbeat.com/blog/wp-content/uploads/2009/03/aptera-electric-car.jpg";
        myRemoteImages[5]="http://www.cartuningcentral.com/wp-content/uploads/2008/01/exotic-car-pagani-zonda.jpg";


        CurrentImageIndex= 0;

        img= (ImageView)findViewById(R.id.myImageView);
        DisplayLiveImage(CurrentImageIndex);

        Button previous = (Button)findViewById(R.id.btnPrevious);
        Button next = (Button)findViewById(R.id.btnNext);


        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                ShowNext();

            }

        });

        previous.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                ShowPrevious();

            }

        });

    }


    public void DisplayLiveImage(int val)
    {

                     try {  

                             URL aURL = new URL(myRemoteImages[val]);  
                             URLConnection conn = aURL.openConnection();  
                             conn.connect();  
                             InputStream is = conn.getInputStream();  

                             BufferedInputStream bis = new BufferedInputStream(is);  

                             Bitmap bm = BitmapFactory.decodeStream(bis);  
                             bis.close();  
                             is.close();  

                            // i.setImageBitmap(bm); 
                             img.setImageBitmap(bm);
                        } catch (IOException e) {  

                        }  


                  //   i.setScaleType(ImageView.ScaleType.FIT_CENTER);  

                   //  i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
                    // return i;


    }






    public void ShowNext()
    {
        if(CurrentImageIndex < myRemoteImages.length )
        {
            CurrentImageIndex  = CurrentImageIndex +1 ;
            DisplayLiveImage(CurrentImageIndex);
        }

    }


    public void ShowPrevious()
    {

        if(CurrentImageIndex > 0 )
        {
            CurrentImageIndex  = CurrentImageIndex -1 ;
            DisplayLiveImage(CurrentImageIndex);
        }



    }

any help would be appriciated.

UMAR-MOBITSOLUTIONS
  • 77,236
  • 95
  • 209
  • 278

1 Answers1

0

The problem maybe with the resolution/size of images you are trying to download and set in your image view.

The image at this url

http://www.wallpaperez.net/wallpaper/car/Lamborghini-prototype-car-926.jpg

is 1920*1200 pixels which maybe just too big for the emulator. The code is working fine for other smaller pictures.

Primal Pappachan
  • 25,857
  • 22
  • 67
  • 84