如何在Android中水平滚动ImageView?

时间:2018-08-18 08:27:40

标签: java android android-imageview android-scroll

在我的应用程序中,我希望将服务器中的图像显示到ImageView中。
我的imageView 填充整个屏幕,为此,我使用android:scaleType="centerCrop"

但是使用centerCrop时是否不显示所有图像细节?

我希望通过用户手指自动(正常速度)在imageView上水平滚动(以正常速度)。

我的XML代码:

<ImageView
    android:id="@+id/wallpaperDetail_img"
    android:layout_width="match_parent"
    android:layout_height="patch_parent"
    android:scaleType="centerCrop" />

我的完整XML代码:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.Wallpapers.WallpaperDetailActivity">

    <include
        android:id="@+id/wallpaperDetail_toolbar"
        layout="@layout/toolbar_simple" />

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_below="@id/wallpaperDetail_toolbar"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/wallpaperDetail_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop" />
    </HorizontalScrollView>

    <ProgressBar
        android:id="@+id/wallpaperDetail_loader"
        android:layout_width="@dimen/size25"
        android:layout_height="@dimen/size25"
        android:layout_centerInParent="true"
        android:visibility="gone" />

    <io.github.yavski.fabspeeddial.FabSpeedDial
        android:id="@+id/wallpaperDetail_fabMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:visibility="gone"
        app:fabGravity="bottom_end"
        app:fabMenu="@menu/menu_wallpaper_detail"
        app:miniFabBackgroundTintList="@array/fab_menu_item_colors"
        app:fabBackgroundTint="@color/catMenuColor2"
        app:miniFabDrawableTint="@android:color/white"
        app:miniFabTitleTextColorList="@array/fab_menu_item_colors"
        app:touchGuardDrawable="@drawable/background" />

</RelativeLayout>

我从服务器获取图像的Java代码:

    Glide.with(context)
            .load(imageUrl)
            .asBitmap()
            .diskCacheStrategy(DiskCacheStrategy.SOURCE)
            .into(wallpaperDetail_img);

如何在ImageView水平滚动?我该怎么办?

2 个答案:

答案 0 :(得分:0)

使用HorizontalScrollView

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/wallpaperDetail_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:src="@drawable/your_image" />
</HorizontalScrollView>

答案 1 :(得分:0)

您可以这样做

    <HorizontalScrollView
    android:id="@+id/horizontal_grid"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="40">
    <LinearLayout
        android:id="@+id/horizontal_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    </LinearLayout>

</HorizontalScrollView>

您的xml应该看起来像这样

export const Icons = { icon:require("something") }