1

I got a gallery view that displayed images based on drawables inside the project. But now I wanted it to display out images of a specific folder and I'm not really sure how to make it work that way. Example of image folder "mnt/sdcard/ff/" Any comments and answer would be highly appreciated! Below is the codes that display images based on drawables.

private void setupUI() {

    leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
    rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
    gallery = (Gallery) findViewById(R.id.gallery);

    leftArrowImageView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (selectedImagePosition > 0) { --selectedImagePosition; }
            gallery.setSelection(selectedImagePosition, false);
        }
    });

    rightArrowImageView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (selectedImagePosition < drawables.size() - 1) { ++selectedImagePosition; }
            gallery.setSelection(selectedImagePosition, false);
        }
    });

    gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            selectedImagePosition = pos;
            if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
                leftArrowImageView.setImageDrawable(getResources()
                                  .getDrawable(R.drawable.arrow_left_enabled));
                rightArrowImageView.setImageDrawable(getResources()
                                   .getDrawable(R.drawable.arrow_right_enabled));
            } else if (selectedImagePosition == 0) {
                leftArrowImageView.setImageDrawable(getResources()
                                  .getDrawable(R.drawable.arrow_left_disabled));
            } else if (selectedImagePosition == drawables.size() - 1) {
                rightArrowImageView.setImageDrawable(getResources()
                                   .getDrawable(R.drawable.arrow_right_disabled));
            }
            changeBorderForSelectedImage(selectedImagePosition);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) { }
    });

    galImageAdapter = new GalleryImageAdapter(this, drawables);
    gallery.setAdapter(galImageAdapter);

    if (drawables.size() > 0) {
        gallery.setSelection(selectedImagePosition, false);
    }

    if (drawables.size() == 1) {
        rightArrowImageView.setImageDrawable(getResources()
                           .getDrawable(R.drawable.arrow_right_disabled));
    }

    gallery.setCallbackDuringFling(false);
}

private void changeBorderForSelectedImage(int selectedItemPos) {
    int count = gallery.getChildCount();

    for (int i = 0; i < count; i++) {
        ImageView imageView = (ImageView) gallery.getChildAt(i);
        imageView.setBackgroundDrawable(getResources()
                 .getDrawable(R.drawable.image_border));
        imageView.setPadding(3, 3, 3, 3);
    }

    ImageView imageView = (ImageView) gallery.getSelectedView();
    imageView.setBackgroundDrawable(getResources()
             .getDrawable(R.drawable.selected_image_border));
    imageView.setPadding(3, 3, 3, 3);
}

private void getDrawablesList() {
    drawables = new ArrayList<Drawable>();
    drawables.add(getResources().getDrawable(R.drawable.ads1));
    drawables.add(getResources().getDrawable(R.drawable.ads2));
    drawables.add(getResources().getDrawable(R.drawable.ads3));
    drawables.add(getResources().getDrawable(R.drawable.ads4));
    drawables.add(getResources().getDrawable(R.drawable.ads5));
    drawables.add(getResources().getDrawable(R.drawable.ads6));
    drawables.add(getResources().getDrawable(R.drawable.ads7));
}
sschrass
  • 7,014
  • 6
  • 43
  • 62
IssacZH.
  • 1,457
  • 3
  • 24
  • 54

1 Answers1

1

create new folder inside res named raw ( res/raw) and put your images here .

and get image R.raw.imagename................

Anand
  • 2,875
  • 1
  • 18
  • 16
  • I get the images from a Url. I wanted the application to download images and display it in a gallery view. – IssacZH. Jan 30 '13 at 09:39
  • Umm.. As I mentioned in my question, I wanted to display images from a specific folder. The application will run and download images from a url. Then save it into folder. I want to display image based on the image location. – IssacZH. Jan 30 '13 at 09:50
  • In the android u can not store the images programatically(as per my knowledge) in a specific folder, u can only save your image inside local memory of application(/data/data//files/...) as a file object. – Anand Jan 30 '13 at 09:56
  • Actually yes. You can store the images in a specific folder. I tried it and it worked. With or without the application, the images remains in the internal memory. – IssacZH. Jan 30 '13 at 09:59