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

时间:2016-04-15 02:10:20

标签: android horizontalscrollview

我希望复制airbnb的应用图片滑块,您可以在视图顶部有一个图像,可以水平滑动,并在刷卡时自动转到下一个图像。我创建了一个horizo​​ntalscrollview但它没有相应的功能。它不会从一个图像翻转到另一个图像,在滑动时它会沿着图像滚动并最终滚动到下一个图像。我已经搜索了相当多的东西,并没有看到一个不被弃用的解决方案。

有什么想法吗?

编辑 - 每个请求添加一些代码:

基本上我从我的AWS数据库(在下面未显示的其他类中)中拉入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>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

经过几个小时的挫折和一些帮助越过终点线,以这种方式滑动屏幕的某些部分的答案是使用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?

我的工作代码是在我发布的另一个问题中提供的,这让我超越终点线:) - Android ViewPager Won't Show Second Page?