在水平的RecyclerView中显示ImageView在Android

时间:2016-10-06 09:43:04

标签: android android-layout imageview android-recyclerview

我正在构建一个Android应用程序,用户只需点击一下按钮即可拍照,这些照片会显示在同一个活动中。照片在RecyclerView内,RecyclerView的Orientation是水平的。我可以拍照,保存,并根据需要旋转它们。我也可以通过RecyclerView向用户显示它们,使其看起来像是一个图像库。

但是,似乎包含ImageView的单个LinearLayout占用的空间比ImageView所需的空间大得多。

这是没有任何照片的活动的屏幕截图。我为RecyclerView设置了白色背景:

Blank RecyclerView

使用相机拍照后,我设法拍照,旋转照片(因为当相机处于人像状态时,Android有时会将其保存为风景照片),并显示它。 RecyclerView适配器的布局有黑色背景和顶部的imageView。这是我使用的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#000000">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ivPhoto"
        android:scaleType="fitStart"/>

</LinearLayout>

当我设置ImageView的位图设置(在RecyclerView适配器中),文件路径为源时,会发生这种情况:

RecyclerView with Image

如您所见,我有我的ImageView。但是,似乎ImageView的LinearLayout父级不包装ImageView。而不是RecyclerView具有的白色背景,LinearLayout的黑色背景是显示的。是的,这会占用整个RecyclerView。

我不知道为什么linearLayout没有包装ImageView。我也为ImageView尝试了不同的scaleTypes,但它没有显示最佳效果。

1 个答案:

答案 0 :(得分:3)

尝试将android:adjustViewBounds="true"设置为ImageView