У меня есть галерея, загружаемая пользовательским адаптером с использованием пользовательских представлений в качестве элементов. Мне нужно, чтобы эти элементы были масштабированы на 70% по умолчанию. Проблема в том, что галерея ведет себя так, как будто она имеет размер 100% с прозрачностью 30% = интервал между элементами просто большой. Для лучшего понимания я прикрепил два изображения с элементами, масштабированными до 100% и 70%.
Элементы масштабируются до 100%
Элементы масштабируются до 70%
Я не могу жестко закодировать setSpacing, так как это будет странно вести себя при разных разрешениях. Я попытался setSpacing (0) без удачи. Как я могу добиться, чтобы галерея работала так, как если бы элементы были маленькими (70%), а не оригинального размера?
Я масштабирую элементы, добавляя setScaleX / Y в конструктор пользовательского элемента MagazineCell, который расширяет RelativeLayout:
public MagazineCell(Context context) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layout = (RelativeLayout) inflater.inflate(R.layout.mag_big, null);
addView(layout);
this.setScaleX(0.7f);
this.setScaleY(0.7f);
}
Я также попытался установить масштаб в drawChild () галереи, но безуспешно. В адаптере я просто использую этот класс для элементов галереи:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MagazineCell cell;
position = getPosition(position);
if (null == convertView || convertView.getClass() != MagazineCell.class) {
cell = new MagazineCell(context);
} else {
cell = (MagazineCell) convertView;
}
return cell;
}
Галерея не имеет специального кода. Я использую SDK 11 на Acer Iconia TAB A500 под управлением Android 3.1.
Спасибо за любые подсказки или комментарии.