android定时器循环实现轮播图

news2024/12/23 1:05:02

说明:
android定时器加for循环实现轮播图
效果:
在这里插入图片描述

step1:

package com.example.iosdialogdemo;



import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {
    private final int Time = 1000;    //时间间隔,   单位 ms
    private Handler handler = new Handler();
    private int num = 0;      //用来观测重复执行
    private int img[] = {1, 2, 3, 4, 5, 6, 7};
    private String imgString[] = {"12345", "23456", "34567", "45671", "56712", "67123", "71234"};
    private String nameString[] = {"刘备", "关羽", "张飞", "诸葛亮", "袁绍", "曹操", "孙权"};
    private int mips[] = {R.mipmap.liubei, R.mipmap.guanyu, R.mipmap.zhangfei, R.mipmap.zhuge, R.mipmap.yuan, R.mipmap.caocao, R.mipmap.sun};


    private TextView tv_img0, tv_img1, tv_img2, tv_img3, tv_img4;
    private int[] tvIds = {R.id.tv_img0, R.id.tv_img1, R.id.tv_img2, R.id.tv_img3, R.id.tv_img4};
    private TextView[] tvGroups = {tv_img0, tv_img1, tv_img2, tv_img3, tv_img4};

    private ImageView iv_img0, iv_img1, iv_img2, iv_img3, iv_img4;
    private int[] ivIds = {R.id.iv_img0, R.id.iv_img1, R.id.iv_img2, R.id.iv_img3, R.id.iv_img4};
    private ImageView[] ivGroups = {iv_img0, iv_img1, iv_img2, iv_img3, iv_img4};

    private int[] ages = {0, 1, 2, 3, 4};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        for (int i = 0; i < tvIds.length; i++) {
            tvGroups[i] = findViewById(tvIds[i]);
            ivGroups[i] = findViewById(ivIds[i]);
            tvGroups[i].setText(nameString[i]);
            ivGroups[i].setImageResource(mips[i]);
        }


        System.out.println(Arrays.toString(img));
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                handler.postDelayed(this, Time);
                //每隔一段时间要重复执行的代码
                System.out.println("第次执行");
                num++;
                int age = num % 7;
                int sex = num % 5;
                System.out.println(age);
                System.out.println(nameString[age]);
                tvGroups[sex].setText(String.valueOf(nameString[age]));
                ivGroups[sex].setImageResource(mips[age]);
            }
        }, Time);
    }
}

step2:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:id="@+id/tv_img0"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:textSize="30sp"
            />

        <TextView
            android:id="@+id/tv_img1"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:textSize="30sp"
            android:gravity="center"
            />
        <TextView
            android:id="@+id/tv_img2"
            android:layout_width="100dp"
            android:layout_height="70dp"
            android:gravity="center"
            android:textSize="30sp"
            />
        <TextView
            android:id="@+id/tv_img3"
            android:gravity="center"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:textSize="30sp"
            />
        <TextView
            android:id="@+id/tv_img4"
            android:layout_width="130dp"
            android:gravity="center"
            android:layout_height="70dp"
            android:textSize="30sp"
            />

    </LinearLayout>

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

        <ImageView
            android:id="@+id/iv_img0"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:scaleType="fitStart"
            />

        <ImageView
            android:id="@+id/iv_img1"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:scaleType="fitStart"
            />

        <ImageView
            android:id="@+id/iv_img2"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:scaleType="fitStart"
            />
        <ImageView
            android:id="@+id/iv_img3"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:scaleType="fitStart"
            />
        <ImageView
            android:id="@+id/iv_img4"
            android:layout_width="130dp"
            android:layout_height="70dp"
            android:scaleType="fitStart"
            />

    </LinearLayout>

</LinearLayout>

end

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用onnxruntime-web 运行yolov8-nano推理

ONNX&#xff08;Open Neural Network Exchange&#xff09;模型具有以下两个特点促成了我们可以使用onnxruntime-web 直接在web端上运行推理模型&#xff0c;为了让这个推理更直观&#xff0c;我选择了试验下yolov8 识别预览图片&#xff1a; 1. 跨平台兼容性 ONNX 是一种开…

一键AI换衣-可图AI试衣

我们的真的实现了穿衣自由了吗&#xff1f;上传一张人物图片和衣服的图片&#xff0c;就能实现一键换衣。 这就是可图AI试衣项目 魔塔地址&#xff1a;https://www.modelscope.cn/studio ... lors-Virtual-Try-On 参考&#xff1a; 一键AI换衣-可图AI试衣 https://www.jinsh…

【elkb】创建用户和角色

在使用中我们不能把超管的用户信息给到所有者&#xff0c;我们需要为不用的使用场景创建不同的用户。 登录管理员用户 打开管理页面 创建角色 点击角色&#xff0c;创建角色 填写角色信息 设置Kibana 权限 最后点击创建角色 创建用户 点击用户--->创建用户 填写信息 登录…

LeetCode --- 421周赛

题目列表 3334. 数组的最大因子得分 3335. 字符串转换后的长度 I 3336. 最大公约数相等的子序列数量 3337. 字符串转换后的长度 II 一、数组的最大因子得分 数据范围足够小&#xff0c;可以用暴力枚举移除的数字&#xff0c;得到答案&#xff0c;时间复杂度为O(n^2)&#…

《Java核心技术 卷I》第4章 对象与类

第4章 对象与类 面向对象程序设计(Object-Oriented Programming&#xff0c;OOP)。 实现一个简单的Web浏览器可能2000个过程&#xff0c;采用面向对象设计风格大约100个类&#xff0c;每个类平均包含20个方法。 类 类(class)是构造对象的模板或蓝图&#xff0c;我们可以将类…

【JavaScript】axios 二次封装拦截器(接口、实例、全局)

学习 coderwhy 老师结合 ts 二次封装 axios 目录结构 config config\index.ts // export const BASE_URL "http://codercba.com:9002"; export const TIME_OUT 10000;// 1. 根据环境变量区分接口地址 // let BASE_URL: string; // if (process.env.NODE_ENV &qu…

c++:vector模拟实现

一、vector成员变量 库里实现用的就是这三个成员变量&#xff0c;咱们实现跟库里一样&#xff0c; namespace myvector {template<class T>class vector{public://vecttor的迭代器是原生指针typedef T* iterator;typedef const T* const_iterator; private:iterator _sta…

数字后端零基础入门系列 | Innovus零基础LAB学习Day8

###LAB15 Detail Routing for Signal Integrity, Timing, Power and Design for Yield 这个章节虽然标题有点长&#xff0c;但不要被它吓到&#xff0c;其实这个章节就是Innovus工具的绕线Routing。只不过这个阶段做Route不是仅仅是把所有的逻辑连接&#xff0c;用实际的金属层…

发现研究的组织是自己所在组织,有点慌

donnyhuang 2019-5-29 23:34 我们做业务建模研究的组织可以是自己所在的组织吗&#xff1f;例如&#xff0c;如果我想做一个组件来来提高研发效能&#xff0c;那我研究的组织是我们部门的研发线可以吗&#xff1f; 因为最近做一个设备管理的建模&#xff0c;发现研究的组织是自…

将数学学生搞糊涂的糊涂话:面积(路程)是一种对应规则(关系)

黄小宁 将一种关系与构成此关系的成员、要素混为一谈是非常低级的常识性错误。问题是学生们做梦都不敢怀疑课本会有这样的错误。有战士与班长之间构成一种上下级关系&#xff0c;战士必须服从上级的指挥。将构成此关系中的班长说成是关系本身显然是概念性错误。同样&#xff0c…

(九)JavaWeb后端开发3——Servlet

目录 1.Servlet由来 2.Servlet快速入门 3.Servlet执行原理 4.Servlet生命周期 1.Servlet由来 在JaveEE API文档中对Servlet的描述是&#xff1a;可以运行在服务器端的微小程序&#xff0c;但是实际上&#xff0c;Servlet就是一个接口&#xff0c;定义了Java类被浏览器访问…

【51单片机】矩阵键盘

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 矩阵键盘 矩阵键盘 矩阵键盘位于开发板的右下角 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键…

特朗普概念股分析:DJT和Phunware股价大涨:买还是卖?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;特朗普媒体科技集团的股价已经从9月份的低点上涨了280%。 &#xff08;2&#xff09;随着特朗普赢得大选的概率上升&#xff0c;Phunware的股价也在大幅上涨 &#xff08;3&#xff09;这些股票在大选后逆转的可能性越来…

Python | Leetcode Python题解之第522题最长特殊序列II

题目&#xff1a; 题解&#xff1a; class Solution:def findLUSlength(self, strs: List[str]) -> int:def is_subseq(s: str, t: str) -> bool:pt_s pt_t 0while pt_s < len(s) and pt_t < len(t):if s[pt_s] t[pt_t]:pt_s 1pt_t 1return pt_s len(s)ans …

FlinkCDC-MYSQL批量写入

一、运行环境 &#xff08;1&#xff09;Flink&#xff1a;1.17.2 &#xff08;2&#xff09;Scala&#xff1a;2.12.20 &#xff08;3&#xff09;Mysql&#xff1a;5.7.43 ##开启binlog 二、代码示例 思路&#xff1a;通过滚动窗口收集一批数据推给sink消费。binlog日志对…

群控系统服务端开发模式-应用开发-上传配置功能开发

下面直接进入上传配置功能开发&#xff0c;废话不多说。 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_upload (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,upload_type tinyint(1) UNSIGNED NOT NULL COMMENT 上传类型 1&#xff1a;本站 2&a…

【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测

【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测 目录 文章目录 【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要数据与结论&#xff09;主要参考工作后续优…

C++设计模式结构型模式———组合模式

文章目录 一、引言二、组合模式三、总结 一、引言 组合模式是一种结构型设计模式&#xff0c; 可以使用它将对象组合成树状结构&#xff0c; 并且能像使用独立对象一样使用它们。代码实现中涉及了递归调用。组合模式与传统上的“类与类之间的组合关系”没有关联&#xff0c;不…

【C/C++】qsort函数的学习与使用

零.导言 在之前的文章中&#xff0c;我介绍了冒泡排序&#xff0c;即按ASCII码值把元素从小到大排序&#xff08;文章链接我放在了第五部分&#xff0c;有兴趣的小伙伴可以求看看&#xff09;。而今天我将继续介绍qsort函数&#xff0c;这个函数可以起到和冒泡排序一样的作用&a…

前段(vue)

目录 跨域是什么&#xff1f; SprinBoot跨域的三种解决方法 JavaScript 有 8 种数据类型&#xff0c; 金额的用什么类型。 前段 区别 JQuery使用$.ajax()实现异步请求 Vue 父子组件间的三种通信方式 Vue2 和 Vue3 存在多方面的区别。 跨域是什么&#xff1f; 跨域是指…