gosr
gosr

Reputation: 4708

Change border style in Gallery

I am taking this tutorial. As you can see on this image, the standard grey border is applied to all elements in the gallery. I would like to remove this rather ugly border, or, actually, make it a 1 px border instead (or just so the images can be distinguished from each other). I tried removing this line:

imgView.setBackgroundResource(GalItemBg);

That removes the border, but then the images overlap each other and it's still not very pretty.

So, how do I change the border? And how do I get the gallery elements to not overlap each other?

Upvotes: 6

Views: 8081

Answers (1)

Thomson Comer
Thomson Comer

Reputation: 3919

I'm sure you've already discovered an answer for this problem, but as there's none posted, here's one now!

You can place each of your imgView objects inside of a RelativeLayout with a black background and a 1 padding. Then return the RelativeLayout object containing the ImageView instead of returning the ImageView itself.

public View getView(int position, View convertView, ViewGroup parent)
{
    ImageView imgView = new ImageView(m_Context);
    // do stuff initializing your imgView as before
    RelativeLayout borderImg = new RelativeLayout(m_Context);
    borderImg.setPadding(1,1,1,1);
    borderImg.setBackgroundColor(0xff000000);
    borderImg.addView(imgView);
    return borderImg;
}

Finally, it is much easier to enforce a spacing between your Gallery images by using the Gallery method setSpacing(int pixels) to put a space between each Gallery object. You won't get the black border around them, but the Gallery background will be visible between and behind them.

Upvotes: 11

Related Questions