实现一个可以左右滑动切换预览图带标题的相册

本文介绍了如何实现一个带有标题的相册,该相册支持左右滑动切换预览图。通过使用StickyGridHeadersGridView和自定义适配器,结合重写OnTouchEvent方法来实现滑动切换效果。同时提供了优化建议,如添加动画和显示视频缩略图。
摘要由CSDN通过智能技术生成

实现一个可以左右滑动切换预览图带标题的相册

废话不多说,先来看看效果

这里写图片描述

(预览图较小)
这里写图片描述

(预览图较大)
这里写图片描述

(预览图最大)
这里写图片描述

按照文件夹显示:
这里写图片描述

实现思路

方法一: 可以用一个ListView嵌套GridView来实现。ListView的每个Item是一个显示标题的TextView和一个GridView组成。但是这种方式的实现需要我们自定义GridView,重写其OnMeasure()方法,否则GridView可能无法正常显示。而且优化不好容易卡顿
方法二:使用开源项目:[GitHub地址]https://github.com/TonicArtos/StickyGridHeaders 我们使用其中的StickyGridHeadersGridView和其适配器StickyGridHeadersSimpleAdapter展现出带标题的效果。至于左右滑动切换预览图的逻辑处理逻辑我们放在另外一个自定义GridView里面去实现。

1 首先实现StickyGridHeadersGridView的适配器
public class MyStickyAdapter extends BaseAdapter implements StickyGridHeadersSimpleAdapter
{
   
  String flag_sort;//根据什么排序的标志,可以更具日期,类型,还有文件来排序,默认按照时间排序
  private LayoutInflater inflater;
  LinkedHashMap<String, List<Picture>> listLinkedHashMap;
  private Context mContext;
  private List<Picture> pictures;

  public MyStickyAdapter(Context paramContext, String paramString)
  {
    this.mContext = paramContext;
    this.flag_sort = paramString;
    this.inflater = LayoutInflater.from(paramContext);
    this.pictures = new ArrayList();
    init();
  }

  private void init()
  {
    if (this.flag_sort.equals("time_sort"))
    {
      this.pictures = MainActivity1.pictures_timesort;//照片数据保存在MainActivity1中,在我的项目里,这是主Activity
      return;
    }
    if (this.flag_sort.equals("folder_sort"))
    {
      this.pictures = MainActivity1.pictures_default;
      return;
    }
    if (this.flag_sort.equals("type_sort"))
    {
      this.pictures = MainActivity1.pictures_type;
      return;
    }
    this.pictures = MainActivity1.pictures_timesort;
  }
  @Override
  public int getCount()
  {
    return this.pictures.size();
  }
  @Override
  public long getHeaderId(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值