如何在 Horizo​​ntalScroll View 中居中 ImageView Android

How to Center ImageView in HorizontalScroll View Android

我一直在尝试将 3000 像素 x 1500 像素(大致)的大壁纸居中,以便在加载时显示图像的中心,然后用户可以向左或向右滚动以查看其余部分。我看过几个例子,它似乎并没有帮助它总是落在图像的左侧!

我只是需要另一双眼睛来指引我正确的方向。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/black">

   <HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollbars="none"
        >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_centerHorizontal="true"
            >

            <ImageView
                android:id="@+id/imgFullscreen"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                />
        </LinearLayout>
  </HorizontalScrollView>
</RelativeLayout>

提前致谢!

首先滚动视图内的布局应该是

 android:orientation="horizontal"

并包装宽度和高度的内容

最后,您想要的是启动 activity 并使滚动视图居中。 您可以通过

之类的方式以编程方式执行此操作
int centerX = scrollView.getChildAt(0).getWidth()/2;
int centerY = scrollView.getChildAt(0).getHeight()/2;
scrollView.scrollTo(centerX, centerY);

例如在您的 Activity

的 onCreateView 中

首先,您需要将 linearlayout 和 imageView 宽度设置为 "wrap_content" 然后 measure 你的 scollView 并得到它的 width ,之后你需要得到 screen size scrollTo 然后滚动到中间

   middle Offset = (scrollView width - screen width ) / 2