图像导航滑块 Android

Image Navigation Slider Android

我想在 Android 上复制 iOS 相机胶卷滑块。 功能是显示固定数量的缩略图,但能够滑过所有图像。

结果是这样的:

制作两种布局:一种用于在运行时放置缩略图视图,另一种带有自定义搜索栏。将搜索栏布局放在缩略图布局的顶部。使进度条透明,并使用您当前的缩略图作为搜索栏的缩略图。将搜索栏的最大值设置为页数 - 1。确保两个布局的宽度相同。 将 OnSeekBarChangeListener 添加到您的搜索栏:

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    // Retrieve the thumbnail for the page
    // progress = page id, since the max value of the seek bar is restricted to the number of pages
    Bitmap thumbnail = getThumbnailForPage(int progress)
    if (thumbnail != null) {
        seekBar.setThumb(new BitmapDrawable(getResources(), thumbnail));
    }

    // Change the view pager to the page with id = progress
}

在运行时创建页面缩略图的 ImageView,并将它们添加到缩略图布局中。您的搜索栏布局应该在前台,否则您将无法单击该栏并且它不会检测到进度变化。

您应该结合水平 SCROLLVIEW 和 LINEARLAYOUT 以及 GRIDVIEW 来实现您想要的!将网格视图置于线性布局中,并将线性布局置于水平滚动视图中;

然后在设置适配器的时候!统计数据的数量!之后你应该计算所需的宽度来显示你的所有项目!例如你想显示 8 项!每个宽度为 100dp 。所以所需的宽度将是 800dp!那么你应该添加这些代码行

yourGridView.setNumColumns(8);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(800, ViewGroup.LayoutParams.MATCH_PARENT);
yourGridView.setLayoutParams(lp);

dnt 忘记在 xml!

中将线性布局的宽度设置为 WRAP_CONTENT

* 重要提示 * 据我所知,通过这样做,gridview 不能进行垃圾回收,因为 Scroll View 不支持这样的事情并且您的网格视图嵌套在其中!所以不要对大量图像使用此方法,否则会出现 HEAP SIZE 错误!