我有一些代码,可以从ArrayList向ImageViews添加可变数量的图像。然后将它们作为视图添加到LinearLayout,该LinearLayout位于HorizontalScrollingLayout中。我的代码如下:
我的活动课程 -
LinearLayout gallery;
...
gallery = (LinearLayout) findViewById(R.id.viewvehiclegallery);
...
gallery.removeAllViews();
for (Photo _photo : vehicle.getPhotoArrayList()) {
ImageView newImage = new ImageView(getApplicationContext());
newImage.setBackground(new BitmapDrawable(getResources(), _photo.getImage()));
newImage.setScaleType(ImageView.ScaleType.FIT_XY);
newImage.setAdjustViewBounds(true);
//newImage.setMaxWidth(40);
gallery.addView(newImage);
}
我的XML -
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tool_bar"
android:id="@+id/viewvehiclehorizontal"
android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp">
<LinearLayout
android:id="@+id/viewvehiclegallery"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:orientation="horizontal"
/>
</HorizontalScrollView>
我的默认照片是可绘制的PNG,但只要用户开始使用相机拍照,就会更换。默认的PNG拉伸非常宽,然后添加的照片很小,不会填充分配给LinearLayout / HorizontalScrollingView的整个空间(抱歉,不确定我需要调整大小)。
如何让照片保持其比例以及合理的尺寸?
编辑:
我的代码现在如下。不要以为它是固定的。
gallery.removeAllViews();
for (Photo _photo : vehicle.getPhotoArrayList()) {
ImageView newImage = new ImageView(getApplicationContext());
newImage.setImageBitmap(_photo.getImage());
newImage.setAdjustViewBounds(true);
newImage.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
//newImage.setBackground(new BitmapDrawable(getResources(), _photo.getImage()));
gallery.addView(newImage);
}