Android : XUI- SimpleImageBanner+BannerItem带标题的轮播图-简单应用

示例图:

1.导入XUI

http://t.csdnimg.cn/qgGaN

2.MainActivity.java

package com.example.viewpagerbanne;


import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.xuexiang.xui.widget.banner.widget.banner.BannerItem;
import com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner;
import com.xuexiang.xui.widget.banner.widget.banner.SimpleTextBanner;
import com.xuexiang.xui.widget.banner.widget.banner.base.BaseBanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    //banner 中的标题
    public static String[] titles = new String[]{
            "伪装者:胡歌演绎'痞子特工'",
            "无心法师:生死离别!月牙遭虐杀",
            "花千骨:尊上沦为花千骨",
            "综艺饭:胖轩偷看夏天洗澡掀波澜",
            "碟中谍4:阿汤哥高塔命悬一线,超越不可能",
    };

    //banner 的图片资源
    public static String[] urls = new String[]{//640*360 360/640=0.5625
            "http://photocdn.sohu.com/tvmobilemvms/20150907/144160323071011277.jpg",//伪装者:胡歌演绎"痞子特工"
            "http://photocdn.sohu.com/tvmobilemvms/20150907/144158380433341332.jpg",//无心法师:生死离别!月牙遭虐杀
            "http://photocdn.sohu.com/tvmobilemvms/20150907/144160286644953923.jpg",//花千骨:尊上沦为花千骨
            "http://photocdn.sohu.com/tvmobilemvms/20150902/144115156939164801.jpg",//综艺饭:胖轩偷看夏天洗澡掀波澜
            "http://photocdn.sohu.com/tvmobilemvms/20150907/144159406950245847.jpg",//碟中谍4:阿汤哥高塔命悬一线,超越不可能
    };

    private List<BannerItem> bannerItemList;
    private SimpleImageBanner simpleImageBanner, simpleImageBanner2, simpleImageBanner3, simpleImageBanner4;

    //文字轮播SimpleTextBanner
    private SimpleTextBanner simpleTextBanner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        simpleImageBanner = findViewById(R.id.sib_simple_usage);
        simpleImageBanner2 = findViewById(R.id.simple_image_banner);
        simpleImageBanner3 = findViewById(R.id.banner3);
        simpleImageBanner4 = findViewById(R.id.simple_image_banner4);

        //
        simpleTextBanner = findViewById(R.id.textBanner);

        //初始化数据
        initData();

        onclick(simpleImageBanner2);
        //设置指示器的图片资源
//        simpleImageBanner3.setIndicatorStyle(0)
//                .setIndicatorSelectorRes(R.drawable.left,R.drawable.right);

        //设置指示器样式,在设置指示器资源时不能少
        onclick(simpleImageBanner3);

        onclick(simpleImageBanner4);

        simpleImageBanner.setTextColor(0xffff0000);
        //事件 设置资源事件
        simpleImageBanner.setSource(bannerItemList).setOnItemClickListener(new BaseBanner.OnItemClickListener<BannerItem>() {
                    @Override
                    public void onItemClick(View view, BannerItem item, int position) {
                        //每项事件
                        Toast.makeText(MainActivity.this, "点击了-》" + position, Toast.LENGTH_SHORT).show();
                    }
                }).setIsOnePageLoop(false)  //设置当页面只有一条时,是否轮播
                .startScroll();     //开始滚动

        //文字轮播事件
        simpleTextBanner.setSource(Arrays.asList(titles)).setOnItemClickListener(new BaseBanner.OnItemClickListener<String>() {
            @Override
            public void onItemClick(View view, String item, int position) {
                //每项事件
                Toast.makeText(MainActivity.this, "点击了-》" + item, Toast.LENGTH_SHORT).show();

            }
        }).setIsOnePageLoop(false).startScroll();

    }

    /**
     * 初始化数据
     */
    public void initData() {
        bannerItemList = new ArrayList<>();

        //添加BannerItem
        for (int i = 0; i < urls.length; i++) {
            BannerItem bannerItem = new BannerItem();
            //设置标题 图片
            bannerItem.setTitle(titles[i]);
            bannerItem.setImgUrl(urls[i]);
            //添加到集合
            bannerItemList.add(bannerItem);
        }

    }

    /**
     * 事件
     */
    private void onclick(SimpleImageBanner sib) {
        sib.setSource(bannerItemList)
                .setOnItemClickListener(new BaseBanner.OnItemClickListener<BannerItem>() {
                    @Override
                    public void onItemClick(View view, BannerItem item, int position) {
                        //每项事件
                        Toast.makeText(MainActivity.this, "点击了-》" + position, Toast.LENGTH_SHORT).show();

                    }
                })
                .setIsOnePageLoop(false)//设置当页面只有一条时,是否轮播
                .startScroll();//开始滚动

    }
}

3.布局文件 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <!--
     app:bb_indicatorGravity="RIGHT"
      设置指示器位置.默认Gravity.CENTER时文字不显示
    -->


    <!--
       设置指示器的图片资源
Ctrl + 鼠标左键 可点击自行查看相关解释
app:bb_indicatorSelectRes="@drawable/ic_banner_dot_select"
app:bb_indicatorStyle="DRAWABLE_RESOURCE"
app:bb_indicatorUnselectRes="@drawable/ic_banner_dot_unselect"
设置指示器宽度,单位dp,默认6dp
attr format="dimension" name="bb_indicatorWidth
设置指示器高度,单位dp,默认6dp
attr format="dimension" name="bb_indicatorHeight

设置指示器选中drawable资源
bb_indicatorSelectRes
设置指示器未选中drawable资源
bb_indicatorUnselectRes

    -->

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView3"
                android:layout_width="fill_parent"
                android:layout_height="48dp"
                android:gravity="center_vertical"
                android:paddingStart="25dp"
                android:text="SimpleImageBanner带标题的图片轮播"
                android:textColor="#383838"
                android:textSize="16sp"
                tools:ignore="MissingConstraints" />

            <com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner
                android:id="@+id/sib_simple_usage"
                android:layout_width="fill_parent"
                android:layout_height="200dp"
                app:bb_barColor="#ff00ff00"
                app:bb_indicatorGravity="LEFT"
                app:bb_scale="0.5625"
                tools:ignore="MissingConstraints" />

            <com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner
                android:id="@+id/simple_image_banner"
                android:layout_width="fill_parent"
                android:layout_height="180dp"
                app:bb_indicatorGravity="RIGHT"
                app:bb_indicatorHeight="4dp"
                app:bb_indicatorSelectColor="#ff00ff00"
                app:bb_indicatorWidth="10dp"
                app:bb_scale="0.5625"
                tools:ignore="MissingConstraints" >

            </com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner>

            <com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner
                android:id="@+id/banner3"
                android:layout_width="fill_parent"
                android:layout_height="200dp"
                app:bb_indicatorGravity="RIGHT"
                app:bb_indicatorHeight="20dp"
                app:bb_indicatorSelectColor="#ff00ff00"
                app:bb_indicatorSelectRes="@drawable/off"
                app:bb_indicatorStyle="DRAWABLE_RESOURCE"
                app:bb_indicatorUnselectRes="@drawable/on"
                app:bb_indicatorWidth="20dp"
                app:bb_scale="0.5625"
                tools:ignore="MissingConstraints" />

            <TextView
                android:id="@+id/textView5"
                android:layout_width="match_parent"
                android:layout_height="48dp"
                android:gravity="center_vertical"
                android:paddingStart="25dp"
                android:text="指示器图片在左——文字在右: "
                android:textColor="#383838"
                android:textSize="16sp"
                tools:ignore="MissingConstraints" />


            <com.xuexiang.xui.widget.banner.widget.banner.SimpleImageBanner
                android:id="@+id/simple_image_banner4"
                android:layout_width="fill_parent"
                android:layout_height="180dp"
                app:bb_barColor="#CCC"
                app:bb_indicatorGravity="LEFT"
                app:bb_indicatorHeight="4dp"
                app:bb_indicatorSelectColor="#ff00ff00"
                app:bb_indicatorWidth="10dp"
                app:bb_scale="0.5625"
                tools:ignore="MissingConstraints" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="match_parent"
                android:layout_height="48dp"
                android:gravity="center_vertical"
                android:paddingStart="25dp"
                android:text="文字轮播: "
                android:textColor="#383838"
                android:textSize="16sp"
                tools:ignore="MissingConstraints" />

            <com.xuexiang.xui.widget.banner.widget.banner.SimpleTextBanner
                android:id="@+id/textBanner"
                android:layout_width="match_parent"
                android:layout_height="35dp"
                android:layout_marginTop="50dp"
                app:bb_isIndicatorShow="false" />


        </LinearLayout>
    </ScrollView>


</androidx.constraintlayout.widget.ConstraintLayout>

4.其他配置

AndroidMainifest.xml 中
 
联网权限:
 
    <uses-permission android:name="android.permission.INTERNET"/>
 
 
//上网配置

<application
...
  android:usesCleartextTraffic="true"
...
>
 

buid.gradle 中:导入
 
dependencies {
 
    //Xui
    implementation 'com.github.xuexiangjys:XUI:1.1.5'
...
    //解决加载图片报错
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    implementation 'com.github.bumptech.glide:compiler:4.11.0'
...
 
}
 
 
 
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227088.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

步进电机驱动芯片TB6600HG部分翻译

有些参数没看懂。一边设计&#xff0c;一边修正。 目录 1.芯片梗概 2.引脚配置 1)引脚含义 2)内部逻辑 3.功能详解 1&#xff09;励磁模式设置 2&#xff09;功能设置 3&#xff09;初始模式 4&#xff09;100% 电流设置(电流值) 5&#xff09;OSC 6&#xff09;衰减…

Mac电脑统计分析绘图 GraphPad Prism 10 最新 for Mac

GraphPad Prism 10是一款强大的科学数据分析和可视化软件&#xff0c;提供了丰富的统计工具、数据可视化选项和报告生成功能。它使用户能够更轻松地分析和解释实验数据&#xff0c;以支持科学研究和决策。 数据导入和整理&#xff1a;GraphPad Prism 10支持从多种数据源导入数据…

CnetSDK .NET OCR Library SDK Crack

CnetSDK .NET OCR Library SDK Crack CnetSDK .NET OCR Library SDK 是一款高精度 .NET OCR 扫描仪软件&#xff0c;用于从图像中识别字符&#xff0c;如文本、手写和符号。该.NET OCR库软件采用Tesseract OCR引擎技术&#xff0c;将字符识别准确率提高高达99%。通过将 .NET OC…

demo(七) zuul请求过滤

在之前的基础上&#xff0c;实现请求过滤功能&#xff1a; 一、介绍&#xff1a; 1、背景&#xff1a;为实现对用户请求的安全校验和权限控制&#xff0c;用于对签名验证、权限校验的过滤器或拦截器。 2、实现方法&#xff1a;实现请求过滤只需继承ZuulFilter并重写方法&…

TCP数据粘包的处理

TCP数据粘包的处理 背锅侠TCP解决方案2.1 发送端2.2 接收端 背锅侠TCP 在前面介绍套接字通信的时候说到了TCP是传输层协议&#xff0c;它是一个面向连接的、安全的、流式传输协议。因为数据的传输是基于流的所以发送端和接收端每次处理的数据的量&#xff0c;处理数据的频率可…

QT Windos平台下打包应用程序

一、windeployqt.exe windeployqt&#xff1a;是 Qt 框架自带的一个工具&#xff0c;用于将一个 Qt 应用程序在 Windows 操作系统下进行打包。它可以通过扫描应用程序的依赖项获取所需的 Qt 库文件、插件和翻译文件&#xff0c;以及复制应用程序可执行文件和所需的依赖项到指定…

CentOS 7.9 安装 k8s(详细教程)

文章目录 安装步骤安装前准备事项安装docker准备环境安装kubelet、kubeadm、kubectl初始化master节点安装网络插件calicowork 加入集群 k8s集群测试 安装步骤 安装前准备事项 一台或多台机器&#xff0c;操作系统 CentOS7.x-86_x64硬件配置&#xff1a;2GB或更多RAM&#xff0…

cache教程1.LRU 缓存淘汰策略

这一节实现LRU算法&#xff0c;要理解明白其使用的数据结构。 FIFO/LFU/LRU 算法简介 Cache的缓存全部存储在内存中&#xff0c;内存是有限的&#xff0c;因此不可能无限制地添加数据。当占用内存超过了给定的内存大小时候&#xff0c;就需要从缓存中移除一条或多条数据了。我…

ARM day3

题目&#xff1a;实现3盏灯的流水 代码&#xff1a; .text .global _start _start: 设置RCC寄存器使能 LDR R0,0X50000A28 LDR R1,[R0] ORR R1,R1,#(0X1<<4) ORR R1,R1,#(0X1<<5) STR R1,[R0]设置PE10管脚为输出模式 LDR R0,0X50006000 LDR R1,[R0] BIC R1,R1,…

【动手学深度学习】(十)PyTorch 神经网络基础+GPU

文章目录 一、层和块1.自定义块2.顺序块3.在前向传播函数中执行代码 二、参数管理1.参数访问2.参数初始化3.参数绑定 三、自定义层1.不带参数的层2.带参数的层 四、读写文件1.加载和保存张量2.加载和保存模型参数五、使用GPU [相关总结]state_dict() 一、层和块 为了实现复杂神…

高精度时钟芯片SD2405

概要 SD2405是一款非常优秀的RTC解决方案&#xff0c;为了能让用户在Arduino上有一款方便易用的时钟模块。该模块是一款内置晶振&#xff0c;支持IIC串行接口的高精度时钟模块&#xff1b;内置一次性工业级电池&#xff0c;可保证外部掉电的情况下&#xff0c;可以继续工作5~8…

elk(filebeat)日志收集工具

elk&#xff08;filebeat&#xff09;日志收集工具 elk&#xff1a;filebeat日志收集工具 和logstash相同 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小得多 filebeat可以运行在非Java环境。他可以代理logstash在…

浅谈基于泛在电力物联网的综合能源管控平台设计及硬件选型

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;城区内一般都具有错综复杂的能源系统&#xff0c;且大部分能耗都集中于城区的各企、事业单位中。基于泛在电力物联网的综合能源管控平台将城区内从能源产生到能源消耗的整体流动情况采用大屏清晰展示&#xff…

单片机语言--C51语言数据类型与存储类型以及C51的基本运算

单片机语言——C51语言 文章目录 单片机语言——C51语言一、 C51与标准C的比较二、 C51语言中的数据类型与存储类型2.1、C51的扩展数据类型2.2、数据存储类型 三、 C51的基本运算3.1 算术运算符3.2 逻辑运算符3.3 关系运算符3.4 位运算3.5 指针和取地址运算符 一、 C51与标准C的…

深入浅出分析kafka客户端程序设计 ----- 生产者篇----万字总结

前面在深入理解kafka中提到的只是理论上的设计原理&#xff0c; 本篇讲得是基于c语言的kafka库的程序编写&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 首先要编写生产者的代码&#xff0c;得先知道生产者的逻辑在代码上是怎么体现的 1.kafka生产者的逻辑 …

Spark Structured Streaming使用教程

文章目录 1、输入数据源2、输出模式3、sink输出结果4、时间窗口4.1、时间窗口4.2、时间水印&#xff08;Watermarking&#xff09; 5、使用例子 Structured Streaming是一个基于Spark SQL引擎的可扩展和容错流处理引擎&#xff0c;Spark SQL引擎将负责增量和连续地运行它&#…

从主从复制到哨兵模式(含Redis.config配置模板)

文章目录 前言一、主从复制1.概述2.作用3.模拟实践搭建场景模拟实践 二、哨兵模式1.概述2.配置使用3.优缺点4.sentinel.conf完整配置 总结 前言 从主从复制到哨兵模式。 一、主从复制 1.概述 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的 Red…

Smart Link和Monitor Link

Smart Link和Monitor Link简介 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个接口作为另一个的备份。Smart Link常用于双上行组网&#xff0c;提供可靠高效的备份和快速的切换机制。 Monitor Link是一种接口联动方案&#xff0c;它…

AMEYA360分析兆易创新GD32A490系列车规级MCU

兆易创新GigaDevice今日宣布&#xff0c;正式推出全新GD32A490系列高性能车规级MCU&#xff0c;以高主频、大容量、高集成和高可靠等优势特性紧贴汽车电子开发需求&#xff0c;适用于车窗、雨刷、智能车锁、电动座椅等BCM车身控制系统&#xff0c;以及仪表盘、娱乐影音、中控导…

Google Bard vs. ChatGPT 4.0:文献检索、文献推荐功能对比

在这篇博客中&#xff0c;我们将探讨和比较四个不同的人工智能模型——ChatGPT 3.5、ChatGPT 4.0、ChatGPT 4.0插件和Google Bard。我们将通过三个问题的测试结果来评估它们在处理特定任务时的效能和响应速度。 导航 问题 1: 统计自Vehicle Routing Problem (VRP)第一篇文章发…