码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【MyAndroid】viewpage+cardView卡片海报效果展示--100个经典UI设计模板(99/100)


    官网效果挺好看的:
    请添加图片描述
    请添加图片描述
    请添加图片描述
    不过需求不需要指示器
    笔者的实现效果如图:
    PageStyle.NORMAL
    在这里插入图片描述

    PageStyle.MULTI_PAGE
    在这里插入图片描述
    PageStyle.MULTI_PAGE_OVERLAP
    在这里插入图片描述

    笔者集成到MyAndroid项目里了,做了一定的修改。后面可能还会修改参数。UI设计大佬给的效果难度比较大哦!
    定制化可参考https://gitee.com/lc951/my-android

    简单使用参考Github开源即可

    记录一下使用过程中的难点

    1. AS环境要求4.2以上,可是笔者是驻场内网开发,开发工具不能随便升级
    2. java和kt脚本混搭,硬是看了半个小时才搞明白整体业务设计结构,建议搞不懂的看分支2_x的版本java比较多
    3. java环境要求比较高一些,一些旧的老的项目在语法上不兼容

    定制笔者的效果参考下面代码:

     BannerViewPager<CardOverlayModel, CardOverlayViewHolder> bannerViewPager = findViewById(R.id.banner_view);
            bannerViewPager.setOnPageClickListener(new BannerViewPager.OnPageClickListener() {
                @Override
                public void onPageClick(int position) {
                    Toast.makeText(CardOverlayActivity.this, "position:" + position, Toast.LENGTH_SHORT)
                            .show();
                }
            })
                    .setAutoPlay(false)
                    .setPageStyle(PageStyle.MULTI_PAGE_SCALE)
                    .setRevealWidth(BannerUtils.dp2px(30))
                    .setHolderCreator(() -> new CardOverlayViewHolder(this))
                    .create(list);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    主要是setPageStyle(PageStyle.MULTI_PAGE_SCALE)和setRevealWidth(BannerUtils.dp2px(30))
    布局如下:

        <com.zhpan.bannerview.BannerViewPager
                android:id="@+id/banner_view"
                android:layout_width="match_parent"
                android:layout_margin="10dp"
                android:layout_height="160dp" />
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可能也许需要下面这段

    public class CardOverlayViewHolder implements ViewHolder<CardOverlayModel> {
    
        private Context context;
    
    
        public CardOverlayViewHolder(Context context) {
            this.context=context;
        }
    
        @Override
        public int getLayoutId() {
            return R.layout.item_viewpager;
        }
    
        @Override
        public void onBind(View itemView, CardOverlayModel data, int position, int size) {
            ImageView imageView = itemView.findViewById(R.id.card_iv);
    
            if(!TextUtils.isEmpty(data.getCoverUrl())){
                Glide.with(context)
                        .load(data.getCoverUrl())
                        .error(R.mipmap.ic_img02)
                        .placeholder(R.mipmap.ic_img01)
                        .into(imageView);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    使用效果很好。集成难度有些。耐心点慢慢理解都能克服哈!

    混淆

        -keep class androidx.recyclerview.widget.**{*;}
        -keep class androidx.viewpager2.widget.**{*;}
    
    • 1
    • 2

    参考

    https://github.com/zhpanvip/BannerViewPager/blob/master/README_CN.md

  • 相关阅读:
    C++版本的OpenCV实现二维图像的卷积定理(通过傅里叶变换实现二维图像的卷积过程,附代码!!)
    Java基础-File
    直方图投影法判断裂缝走势(裂缝类型)
    动态规划:背包问题
    SpringCloud微服务技术栈-什么是Docker?怎么安装Docker?
    Linux posix_spawn和fork的区别
    【原创】浅谈EtherCAT主站EOE(上)-EOE网络
    世界星载SAR发展4——SIR-B(1984,美国)
    零基础入门网络安全必看,从新手小白到顶级大佬,从入门到入狱,超越99%的新手
    Kafka 生产者应用解析
  • 原文地址:https://blog.csdn.net/lichong951/article/details/125398331
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号