Изменить стиль границы в Галерее - PullRequest
6 голосов
/ 28 января 2011

Я беру этот учебник.Как вы можете видеть на этом изображении, стандартная серая рамка применяется ко всем элементам в галерее.Я хотел бы удалить эту довольно некрасивую границу или, на самом деле, вместо этого сделать ее рамкой размером 1 пиксель (или просто так, чтобы изображения можно было отличать друг от друга).Я попытался удалить эту строку:

imgView.setBackgroundResource(GalItemBg);

Это удаляет границу, но затем изображения накладываются друг на друга, и это все еще не очень красиво.

Итак, как мне изменить границу?И как мне заставить элементы галереи не перекрывать друг друга?

1 Ответ

11 голосов
/ 15 апреля 2011

Я уверен, что вы уже нашли ответ на эту проблему, но поскольку он еще не опубликован, вот один из них!

Вы можете разместить каждый из imgView объектов внутри RelativeLayout с черным фоном и 1 отступом. Затем верните объект RelativeLayout, содержащий ImageView, вместо возврата самого 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;
}

Наконец, намного проще установить интервал между Gallery изображениями, используя метод Gallery setSpacing(int pixels), чтобы поставить пробел между каждым Gallery объектом. Вы не получите черную границу вокруг них, но фон Gallery будет виден между ними и позади них.

...