iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现图片循环播放的实例方法
  • 856
分享到

Android实现图片循环播放的实例方法

方法循环图片Android 2022-06-06 10:06:20 856人浏览 安东尼
摘要

很多时候,我们需要展示在客户端展示图片,而且是动态显示,即不停地自行切换图片。下面我们来看一下具体的实现方法。首先,我们需要在XML...   

很多时候,我们需要展示在客户端展示图片,而且是动态显示,即不停地自行切换图片。下面我们来看一下具体的实现方法。首先,我们需要在XML...
    很多时候,我们需要展示在客户端展示图片,而且是动态显示,即不停地自行切换图片。下面我们来看一下具体的实现方法。

    首先,我们需要在XML文件中配置一下将要播放图片的控件(main.xml):
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="Http://schemas.android.com/apk/res/android"
  android:layout_width = "fill_parent"
  android:layout_height= "fill_parent"
  android:orientation="vertical">
  <!--这里是要播放图片的控件,bofang是用来播放图片的View类-->
  <com.sunianjinshi.bofang
    android:layout_width="180dip"
    android:layout_height = "250dip"
  />
</LinearLayout>   

好了,到这里需要用来播放图片的控件就配置好了,接下来我们就要来写实现类bofang.java。
代码如下:
import android.content.Context; 
import android.content.res.Resources; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.canvas
import android.graphics.Paint; 
import android.util.AttributeSet; 
import android.view.View; 

public class bofang extends View 

  int COMPONENT_WIDTH;//控件的宽度 
  int COMPONENT_HEIGHT;//控件的高度 
  boolean initflag = false;//是不是已经初始化图片 
  Bitmap[] bmp;//用来寄存图片的数组 
  int currPicIndex = 0;//以后播放图片的ID 
  int[] bitmapid;//图片编号ID 
  boolean workFlag = true;//播放图片的线程标识位 
  public GGViewCX(Context father,AttributeSet as)//重写构造函数 
  { 
    //首先,要播放图片,就先要有图片,那就先给各个图片编号吧,这里的图片资源寄存在了res下的drawable文件夹下了 
    int[] bitmapId ={R.drawable.adv1, R.drawable.adv2, R.drawable.adv3}; 
    //好了,图片的编号当初已经搞定了,接下来该干什么呢?对,应该将资源里的图片塞进Bitmap数组了,那么我们先来确定将要播放的图片的数量,即Bitmap数组的长度 
    bmp = new Bitmap[bitmapId.length];//这里不要直接将数值赋给bmp,因为我们可能会不定期地改换图片资源,这样我们就要修改多处代码,而我们这样根据 
    //图片的ID来确定图片的数量,以减少不必要的费事,下面开始初始化图片,我们将初始化图片放在一个函数里 
    initBitmap();//图片初始化终了 
    //图片初始化终了了,接下来我们要做的就是播放图片了,但是播放图片之前,我们有一个问题,就是怎样让图片实现循环播放?这里我们另开一个新的线程来准时变动 
    //要播放的图片的ID,以实现图片的循环播放,要实现循环播放图片的功能,我们需要覆写onDraw函数,首先,我们来新开一个线程 
    new Thread() 
    { 
      //重写run方法 
      public void run() 
              { 
                  // TODO Auto-generated method stub 
                  while(workflag)//一直执行这个循环(死循环) 
                  { 
                      currIndex = (currIndex+1)%bitmapId.length;//变动图片的ID 
                      bofang.this.postInvalidate();//刷新屏幕,导致屏幕重绘 
                      try
                      { 
                          Thread.sleep(3000);//到此处暂停3秒钟,然后继续执行run函数,即实现每隔3秒钟刷新屏幕一次 
                      } 
                      catch (InterruptedException e)  
                      { 
                      &n bsp;   // TODO Auto-generated catch block 
                          e.printStackTrace(); 
                      } 
                  } 
              } 
    }.start(); 
  } 
  //初始化图片 
  public void initBitmap() 
  { 
    //获得资源图片 
    Resources res = this.getResources(); 
    for(int i=0;i<bitmapId.length;i++) 
    { 
      bmp[i] = BitmapFactory.decodeResource(res, bitmapId[i]); 
    } 
  } 
  
  //覆写onDraw方法 
  @Override
    protected void onDraw(Canvas canvas)  
    { 
        // TODO Auto-generated method stub 
        super.onDraw(canvas); 
        if(!initflag)//检查是偶已经获得控件的宽和高,如果没有,那么就获得控件的宽和高 
        { 
            COMPONENT_WIDTH = this.getWidth(); 
            COMPONENT_HEIGHT = this.getHeight(); 
            initflag = true; 
        } 
        canvas.drawBitmap(bma[currIndex], 0, 0,paint);//绘制图片 
    } 
}   
   

    PS:这里要说明一下,下面的代码中其实有些地方还有更好的实现方法。

    比如:

    我们为了实现准时变动要播放的图片的ID,以实现循环播放,新开了了一个线程,并且开了一个死循环,但实际这样的写法可控性很低,jdk的java.util.concurrent中提供了大批的方法去控制一段代码准时执行,标准的改写下面的代码如下:
代码如下:
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 
        scheduler.scheduleWithFixedDelay(new runner(), 0, 1, TimeUnit.SECONDS); 
        //或者用scheduler.scheduleAtFixedRate(new runner(),0,1, TimeUnit.SECONDS); 
        //接着我们要实现Runnable方法,也就是准时变动现在播放图片的ID 
        public class runner implements Runnable 
            { 
                public void run() 
          { 
                    // TODO Auto-generated method stub 
                    currIndex = (currIndex+1)%bitmapId.length; 
                    bofang.this.postInvalidate();//刷新屏幕 
               } 
            }   

您可能感兴趣的文章:Android实现可复用的筛选页面Android中 TeaScreenPopupWindow多类型筛选弹框功能的实例代码Android实现简单下拉筛选框Android可筛选的弹窗控件CustomFiltControlandroid仿京东商品属性筛选功能可支持快速搜索筛选的Android自定义选择控件Android 仿京东侧滑筛选实例代码Android Handler之消息循环的深入解析Android开发笔记之:消息循环与Looper的详解RecyclerView+SnapHelper实现无限循环筛选控件


--结束END--

本文标题: Android实现图片循环播放的实例方法

本文链接: https://www.lsjlt.com/news/27733.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Unity UI实现循环播放序列图
    一、思路 1.获取播放组件 一般我们使用UI的Raw Image或者Image来显示图片 Image:仅支持Sprite类型图片,需要更改图片的格式(注意:在StreamingAss...
    99+
    2024-04-02
  • Unity UI怎么实现循环播放序列图
    这篇文章主要讲解了“Unity UI怎么实现循环播放序列图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Unity UI怎么实现循环播放序列图”吧!一、思路1.获取播放组件一般我们使用UI的...
    99+
    2023-06-20
  • JavaScript实现循环轮播图
    本文实例为大家分享了JavaScript实现循环轮播图的具体代码,供大家参考,具体内容如下 案例演示: 1.点击下面图标,图片进行轮播 2.图片轮播完,接着轮播到第一张 (代码内部...
    99+
    2024-04-02
  • Android如何选择图片或视频进行循环播放
    这篇文章主要介绍Android如何选择图片或视频进行循环播放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!项目要求对本地图片或者视频进行轮播,功能实现完成后发现只是在模拟器上运行ok,后来发现是文件路径的原因。文件u...
    99+
    2023-05-30
    android
  • 使用JavaScript实现循环轮播图的案例
    这篇文章主要介绍了使用JavaScript实现循环轮播图的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下案例演示:点击下面图标,图片进行轮播2.图片轮播完,接...
    99+
    2023-06-14
  • Android编程实现播放视频的方法示例
    本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易...
    99+
    2023-05-30
    android 播放 视频
  • Android中使用VideoView实现一个循环播放功能
    本篇文章给大家分享的是有关Android中使用VideoView实现一个循环播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:package com.hangch...
    99+
    2023-05-31
    android videoview roi
  • JavaScript实现图片自动播放
    现如今,随着互联网技术的不断发展,网页设计成为了一项非常重要的行业。而图片作为一个非常重要的元素,经常被运用在页面设计中,用来美化页面、增强信息传递效果、吸引用户的注意力等。而在页面上呈现一些动态的元素,不仅能够充实页面的内容,还能够使用户...
    99+
    2023-05-16
  • 基于OpenCV实现视频循环播放
    目录介绍1.Python+OpenCV实现2.C+++OpenCV实现补充介绍 本文将介绍基于OpenCV实现视频的循环播放。 有以下三个步骤: 首先设置一个frame的设置参数fr...
    99+
    2024-04-02
  • css实现图片轮播的方法
    这篇文章主要介绍css实现图片轮播的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种组合,有后代选择器...
    99+
    2023-06-14
  • Android使用Recyclerview实现图片轮播效果的方法
    这篇文章将为大家详细讲解有关Android使用Recyclerview实现图片轮播效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:思路:准备m张图片使用Recyclerview实现,返回无...
    99+
    2023-05-30
    android recyclerview 滚动效果
  • Vue中实现v-for循环遍历图片的方法
    目录v-for循环遍历图片的方法解决方法如下vue循环显示多个图片小扩展(require 和 import)v-for循环遍历图片的方法 写项目时,遇到后台无法提供背景图片,需要自己...
    99+
    2024-04-02
  • 基于Qt实现图片播放器的示例代码
    前言:使用qt制作了一个简单的图片播放器,可以播放gif、png等格式图片 先来看看播放器的功能(当然是很简陋的,没有很深入的设计): 1、点击图片列表中图片进行播放。 2、自动播放...
    99+
    2022-12-16
    Qt实现图片播放器 Qt图片播放器 Qt图片播放
  • Android实现微信朋友圈图片和视频播放
    本文实例为大家分享了Android实现微信朋友圈图片和视频播放的具体代码,供大家参考,具体内容如下 1.效果图: 2.源码地址:链接 3.参数控制,是否显示播放按钮 holde...
    99+
    2024-04-02
  • Android实现循环轮播跑马灯的效果
    目录先看效果池化思路创造工厂轮询切换动画监听对外能力完整代码先看效果 支持暂停,恢复,view自定义和池化回收复用。使用上,只需要引入xml,并绑定factory即可,内部会在a...
    99+
    2023-05-18
    Android实现循环轮播跑马灯效果 Android实现跑马灯 Android跑马灯
  • Android实现图片双指缩放
    本文实例为大家分享了Android实现图片双指缩放的具体代码,供大家参考,具体内容如下 展示 源码 using Android.App; using Android.OS; u...
    99+
    2024-04-02
  • JS实现图片自动播放效果
    本文实例为大家分享了JS实现图片自动播放效果的具体代码,供大家参考,具体内容如下 JS实现图片自动播放 1、先看效果图 2、完整代码 <!DOCTYPE html>...
    99+
    2024-04-02
  • 如何在Android中利用 ViewPager实现一个循环播放功能
    这篇文章将为大家详细讲解有关如何在Android中利用 ViewPager实现一个循环播放功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.初始化布局我们先来写一个ViewPager广告...
    99+
    2023-05-31
    android viewpager age
  • Android实现圆角图片的方法
    本文实例为大家分享了Android实现圆角图片的具体代码,供大家参考,具体内容如下 效果图 创建类CustomRoundAngleImageView public class ...
    99+
    2024-04-02
  • js实现网页图片轮换播放
    本文实例为大家分享了js实现网页图片轮换播放的具体代码,供大家参考,具体内容如下 1、实现效果如下: 2、实现功能: (1)点击左右箭头之后,下面显示的图片会换成对应的上一张或下一...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作