Android - 创建类似 Airbnb 的水平图像滑块

Android - Creating an Airbnb-like Horizontal Image Slider

我想复制 airbnb 的应用程序图像滑块,其中您在视图顶部有一个图像,您可以水平滑动该图像并在滑动时自动转到下一个图像。我创建了一个 horizo​​ntalscrollview,但它的功能并不完全正确。它不会从一个图像翻转到另一个图像,在滑动时它会沿着图像滚动并最终滚动到下一个图像。我在谷歌上搜索了很多,没有看到一个不被弃用的解决方案。

有什么想法吗?

编辑 - 根据请求添加我的一些代码:

基本上,我从我的 AWS 数据库(在下面未显示的不同 class 中)提取 imageURL,然后尝试使用 Picasso 将这些 URL 加载到 horizo​​ntalscrollview 中。

//generic instructions to allow insertion of pictures into a horizontalimageslider

public View insertPhoto(String path){
        LinearLayout layout = new LinearLayout(getActivity());
        layout.setGravity(Gravity.CENTER);
        ImageView imageView = new ImageView(getActivity());
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        Picasso.with(getActivity() ).load(path).into(imageView); //tried this but got errors when running > resize(layout.getWidth(), layout.getHeight()), also tried .fit() after .load image wouldn't load
        layout.addView(imageView);
        return layout;
            }

private class GetApartmentTask extends AsyncTask<ApiConnector,Long,Apartment >
//after a doInBackground

@Override
        protected void onPostExecute(Apartment apartment) {
//to get image URL from database to then use with Picasso to download the image

            mImageURLArraylist = mApartment.getApartmentImageArrayList();
            for (int z = 0 ;z<mImageURLArraylist.size(); z++) {
                mLinearLayout.addView(insertPhoto("http:" + mImageURLArraylist.get(z)) );
}
}}

在 onCreateView 方法中(显然还有其他东西)

mLinearLayout = (LinearLayout) v.findViewById(R.id.details_page_apartment_picture);

MyXML(相关部分)

<HorizontalScrollView
        android:id="@+id/horizontal_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:fillViewport="true">

        <LinearLayout
            android:id="@+id/details_page_apartment_picture"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            android:orientation="horizontal">

        </LinearLayout>
    </HorizontalScrollView>

我不知道 airbnb 应用图像滑块的具体细节,但听起来您可以使用 flexslider。它基本上是一个 JQuery 工具包。我以前在网站上使用过它,它似乎具有您正在寻找的功能。

https://www.woothemes.com/flexslider/

经过几个小时的挫折和一些帮助越过终点线之后,以这种方式滑动屏幕的某些部分的答案是使用 viewpager。

一些很好的参考资料: swipe some part of the screen http://developer.android.com/training/animation/screen-slide.html What is the role of " isViewFromObject (View view, Object object)" in FragmentStatePagerAdapter?

我发布的另一个问题中提供了我的工作代码,它让我完成了终点线:) --