我有一个使用自定义视图作为元素的自定义适配器。我需要将这些元素默认缩放70%。 问题是画廊表现得像100%大小,30%透明填充=元素之间的间距很大。为了更好地理解,我附加了两个图像,其中元素缩放到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()中设置比例而没有运气。在适配器中我只是将这个类用于gallery元素:
@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;
}
图库没有特殊代码。我在运行Android 3.1的Acer Iconia TAB A500上使用SDK 11.
感谢任何提示或评论。
答案 0 :(得分:0)
看起来没有办法“欺骗”Gallery以缩放的宽度来测量缩放的单元格。所以我只使用负间距 - setSpacing(-100); 可能有一种方法可以覆盖MagazineCell类上的onMeasure方法并计算缩放宽度。但我没试过。
答案 1 :(得分:0)
后
this.setScaleX(0.7F);
this.setScaleY(0.7F);
添加
this.setPivotX(0);
this.setPivotY(0);