我创建无限图片的画廊。我的想法是从 HorizontalScrollView 中删除第一个或最后一个子视图,当它滚动太远时。这是我的 main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<HorizontalScrollView
android:id="@+id/scroller"
android:layout_width="500dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
<LinearLayout
android:id="@+id/mygallery"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal" />
</HorizontalScrollView>
</RelativeLayout>
在“onTouch”回调中,我确定哪个方向滚动 View。如果它向左转,我必须删除第一个带有图片的子视图,在 HorizontalScrollView 的末尾添加另一个并将其滚动到第二张图片,因为在删除第一张图片后,我的视图显示第三张(最后一张)图片。所以第一张照片在左边,最后一张照片在右边。
Log.i(TAG, "Moving to the left");
scrollView.smoothScrollTo(0, 0); //moving to the start of scroller to see the first picture
removeLastPicture(); //removing last picture
prependPicture(); //prepending picture
scrollView.scrollTo(pictureWidth, 0); //I've got to scroll my scroller to the center
最后一个字符串不起作用。HorizontalScrollView 显示第一张图片并且不滚动到中心图片。我错了什么?
顺便说一句,我的画廊可能有一些更有趣的决定吗?我只想通过一个滚动更改一张图片。