2011-01-28 123 views
6

我正在参加this教程。正如您在this图片上看到的,标准灰色边框将应用于图库中的所有元素。我想删除这个相当丑陋的边框,或者实际上,将其设置为1px边框(或者只是为了使图像可以相互区分)。 我试图消除这一行:更改图库中的边框样式

imgView.setBackgroundResource(GalItemBg); 

,消除边界,但随后的图像相互交迭时,它仍然不是很漂亮。

那么,如何更改边框?我如何让图库元素不相互重叠?

回答

11

我相信你已经发现了这个问题的答案,但是因为没有发布,所以现在有一个!

您可以将每个imgView对象放在RelativeLayout的黑色背景和1填充内。然后返回包含ImageViewRelativeLayout对象,而不是返回ImageView本身。

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; 
} 

最后,它是非常容易使用画廊方法setSpacing(int pixels)把每个Gallery物体之间的空间来执行你的Gallery图像之间的间距。你不会得到他们周围的黑色边框,但是Gallery背景将在它们之间和之后可见。

+0

这给了我一个ClassCastException,尽管将它转换为View。 – 2011-05-17 16:30:12