我有一个包含水平LinearLayout的HorizontalScrollView。现在我将同样大的ImageView添加到LinearLayout,以便我可以在ImageViews之间滚动。 ImageViews应紧密排列,两者之间没有空间,但每个图像的两侧都会形成一个巨大的空间(我认为它是图像宽度的一半)。
我是这样做的,我希望有人给我一个提示。
public class SnapGallery extends HorizontalScrollView {
private ArrayList<Bitmap> items = null;
protected Context context = null; //Context of the activity
protected LinearLayout wrapper = null; //This serves as a container for the images in the SnapGallery.
//Constructor
public SnapGallery(Context context) {
super(context);
this.context = context;
items = new ArrayList<Bitmap> ();
this.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
wrapper = new LinearLayout(context);
wrapper.setOrientation(LinearLayout.HORIZONTAL);
wrapper.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
wrapper.setPadding(0, 0, 0, 0);
wrapper.setGravity(Gravity.LEFT);
this.addView(wrapper);
items = getTestBitmaps();
for (Bitmap b : items) {
ImageView curr = createViewFromBitmap(b);
wrapper.addView(curr, new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, 1.0f));
}
}
public ImageView createViewFromBitmap (Bitmap bitmap) {
ImageView view = new ImageView(context);
view.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
view.setPadding(0, 0, 0, 0);
view.setImageBitmap(bitmap);
return view;
}
}
提前致谢!
答案 0 :(得分:0)
可能需要将边距设置为0.这样的事情:
LinearLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 0);
wrapper.setLayoutParams(params);
答案 1 :(得分:0)
您的图像已缩放,因此您需要在图像对象上调用adjustViewBounds(true)以移除自由水平空间。