将ImageViews的纵横比保持在Horizo​​ntalScrollingLayout中的LinearLayout中

时间:2015-11-29 19:16:11

标签: android image scale

我有一些代码,可以从ArrayList向ImageViews添加可变数量的图像。然后将它们作为视图添加到LinearLayout,该LinearLayout位于Horizo​​ntalScrollingLayout中。我的代码如下:

我的活动课程 -

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 / Horizo​​ntalScrollingView的整个空间(抱歉,不确定我需要调整大小)。

如何让照片保持其比例以及合理的尺寸?

编辑:

我的代码现在如下。不要以为它是固定的。

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);
            }

0 个答案:

没有答案