热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android通过实现GridView的横向滚动实现仿京东秒杀效果

这篇文章主要介绍了Android通过实现GridView的横向滚动实现仿京东秒杀效果,实现代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

实现GridView的横向滚动

效果如下图:

1.

具体实现的代码

•1. 主界面布局代码:activity_main.xml

<&#63;xml version="1.0" encoding="utf-8"&#63;>

  
    
      
      
    
  

&#8226;2.主界面GridView列表子项布局文件:item_homepage_hor_grid.xml

<&#63;xml version="1.0" encoding="utf-8"&#63;>

  
    
      
    
    
    
      
      
    
  

&#8226;3.  java实现代码:MainActivity.java

           首先是Javabean

public class HomePageJrTjTwoBean {
  private int img;
  private String title;
  private String old_price;
  private String price;
  public int getImg() {
    return img;
  }
  public void setImg(int img) {
    this.img = img;
  }
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public String getPrice() {
    return price;
  }
  public void setPrice(String price) {
    this.price = price;
  }
  public String getOld_price() {
    return old_price;
  }
  public void setOld_price(String old_price) {
    this.old_price = old_price;
  }
}

Activity代码

public class MainActivity extends Activity {
  //横向GridView 
  @BindView(R.id.home_grid)
  GridView home_grid;
  // 数据源
  private List relist = new ArrayList<>();
  private CommonAdapters re_adapter = null;
  private List listData_two = new ArrayList<>();
  private int[] jrtj_two = new int[]{R.mipmap.home_jrtj_sp_1, R.mipmap.home_jrtj_sp_2, R.mipmap.home_jrtj_sp_3, R.mipmap.home_jrtj_sp_3, R.mipmap.home_jrtj_sp_3};//今日特价横向数据
  private String[] sp_name = new String[]{"老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式...", "老板(Roba1m)大吸力免 拆洗触控侧吸式..."};
  private String[] price = new String[]{"¥5517", "¥5517", "¥5517", "¥5517", "¥5517"};
  private String[] hua_price = new String[]{"¥8888", "¥8888", "¥8888", "¥8888", "¥8888"};
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //自己造的假数据,实际开发中从后台获取,再去刷新Grid的适配器,调用 re_adapter.notifyDataSetChanged();
     for (int i = 0; i (getActivity(), relist, R.layout.item_homepage_hor_grid) {
      @Override
      public void convert(ViewHolders holder, QgitemBean datas) {
       //商品图片
      ImageView home_page_jrtj_img = holder.getView(R.id.home_page_jrtj_img);
      //商品标题
      TextView home_page_jrtj_tv_title = holder.getView(R.id.home_page_jrtj_tv_title);
      //商品价格
      TextView home_page_jrtj_tv_price = holder.getView(R.id.home_page_jrtj_tv_price);
      //商品划价
      TextView home_page_jrtj_tv_huajia = holder.getView(R.id.home_page_jrtj_tv_huajia);
      home_page_jrtj_tv_huajia.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置划价
      home_page_jrtj_img.setImageResource(datas.getImg());
      home_page_jrtj_tv_title.setText(datas.getTitle());
      home_page_jrtj_tv_price.setText(datas.getPrice());
      home_page_jrtj_tv_huajia.setText(datas.getOld_price());
      }
    };
    home_grid.setAdapter(re_adapter);
  }
}

适配器

public abstract class CommonAdapters extends BaseAdapter {
  protected Context mContext;
  protected List mDatas;
  protected LayoutInflater mInflater;
  protected int layoutId;
  private int mCurPosition = 0;
  public int getCurPosition() {
    return mCurPosition;
  }
  public void setCurPosition(int mCurPosition) {
    this.mCurPosition = mCurPosition;
  }
  public CommonAdapters(Context context, List datas, int layoutId)
  {
    this.mCOntext= context;
    mInflater = LayoutInflater.from(context);
    this.mDatas = datas;
    this.layoutId = layoutId;
  }
  public CommonAdapters(Context mContext, T xx, int item_home_list_in) {
    this.mCOntext= mContext;
    mInflater = LayoutInflater.from(mContext);
    this.mDatas = (List) xx;
    this.layoutId = item_home_list_in;
  }
  public void upDataList(List datas)
  {
    if (null == datas)
      return;
    if (mDatas != datas) {
      mDatas.clear();
      mDatas.addAll(datas);
    }
    notifyDataSetChanged();
  }
  @Override
  public int getCount()
  {
    if (null == mDatas)
      return 0;
    return mDatas.size();
  }
  @Override
  public T getItem(int position)
  {
    return mDatas.get(position);
  }
  @Override
  public long getItemId(int position)
  {
    return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent)
  {
    ViewHolders holder = ViewHolders.get(mContext, convertView, parent,
        layoutId, position);
    convert(holder, getItem(position));
    return holder.getConvertView();
  }
  public abstract void convert(ViewHolders holder, T datas);
}

总结

以上所述是小编给大家介绍的Android通过实现GridView的横向滚动实现仿京东秒杀效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
author-avatar
鱼红1993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有