mmaitlen
mmaitlen

Reputation: 822

Multiple selectable GridView

OK, so I think I've exhausted searching for this question, and it's either that I'm totally missing something or nobody else has tried to create a GridView (showing images) which allows the user to select multiple images. Basically I want to have the orange selection box appear whenever a user selects an image, or disappear if the user has already chosen the image.

Is this something that I'll have to roll myself with a customer View? I may also try including a CheckBox with each image and have the CheckBox selected if the image is.

Any assistance would be greatly appreciated.

Upvotes: 8

Views: 9635

Answers (3)

Ridcully
Ridcully

Reputation: 23665

Have a look at this example -- they use a custom layout class that implements Checkable interface and set a colored background-drawable on checked items.

Upvotes: 6

Rob
Rob

Reputation: 11

Just draw a checkbox onto the cell's bitmap when selected. Draw the original when toggle unchecked.

  private Bitmap drawCheck(Bitmap bmp)
  {
   Bitmap bmChecked = Bitmap.createBitmap(bmp.getWidth(),     bmp.getHeight(), bmp.getConfig());
   Bitmap check = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.upcheck);
   Canvas canvas = new Canvas(bmChecked);

   canvas.drawBitmap(bmp, 0, 0, null);
   canvas.drawBitmap(check, 0, 0, null); 
   return bmChecked;
  }

Upvotes: 1

Yar
Yar

Reputation: 4561

I have used an excellent code by Mihai Fonoage.

And then:

  1. added a selected flag to LoadedImage class,
  2. in the onItemClick() function I mark the clicked item as selected
  3. in the adapter's getView() use the flag to i.e. set the image background

IT WORKS.

Upvotes: 1

Related Questions