2 myq 26 myq_26 于 2012.09.19 17:14 提问

Android中如何实现每10秒钟换一幅图片?

我是一名初学者,正在写一个基础的Android程序,想在一个屏幕中像幻灯片一样显示5张图片。每换一次图片的时间间隔是10秒钟,一直循环下去。大家谁能告诉我这个程序如何实现,谢谢。

5个回答

myc_100
myc_100   2012.09.20 11:58
已采纳

你可以使用CountDownTimer()方法,由以下两步实现:
1) 声明一些数组,这些数组包含你图片的标识符,
2) 声明countDownTimer:

int i=0;
new CountDownTimer(10000,1000) {

                @Override
                public void onTick(long millisUntilFinished) {}

                @Override
                public void onFinish() {
                    imgView.setImageDrawable(sdk.getContext().getResources().getDrawable(array[i]));
                    i++;
                    if(i== array.length) i=0;
                    start();
                }
            }.start();
myq_26
myq_26 非常感谢您的回答!
接近 6 年之前 回复
xiaoxiaobian3310903
xiaoxiaobian3310903   2012.09.28 10:29

可以使用线程来实现,开启一个线程,每隔10秒给Handler发送一个消息,Handler接受到消息后更改图片。

public void run() {
    while(true){
        try {
            mReadDataHandler.sendEmptyMessage(0);
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

class ReadDataHandler extends Handler{
    @Override
    public void handleMessage(Message msg) {
imgView.setImageDrawable(sdk.getContext().getResources().getDrawable(array[i]));
                i++;
                if(i >= array.length){
                     i = 0;
                }
        super.handleMessage(msg);
    }

}

curie_87
curie_87   2012.09.19 18:03

你可以创建帧动画来实现:

 AnimationDrawable animation = new AnimationDrawable();
    animation.addFrame(getResources().getDrawable(R.drawable.image1), 100);
    animation.addFrame(getResources().getDrawable(R.drawable.image2), 500);
    animation.addFrame(getResources().getDrawable(R.drawable.image3), 300);
    animation.setOneShot(false);

    ImageView imageAnim =  (ImageView) findViewById(R.id.img);
    imageAnim.setBackgroundDrawable(animation);

    // start the animation!
    animation.start()
myq_26
myq_26 谢谢您的回答,这个我还是不怎么会用!
接近 6 年之前 回复
qq_27578023
qq_27578023   2016.06.12 22:59

你可以使用CountDownTimer()方法,由以下两步实现:
1) 声明一些数组,这些数组包含你图片的标识符,
2) 声明countDownTimer:

int i=0;
new CountDownTimer(10000,1000) {

            @Override
            public void onTick(long millisUntilFinished) {}

            @Override
            public void onFinish() {
                imgView.setImageDrawable(sdk.getContext().getResources().getDrawable(array[i]));
                i++;
                if(i== array.length) i=0;
                start();
            }
        }.start();

                    二。 我觉得还有种更简单的方法就是用个线程handler每十秒启动一下,例如 一个 List集合 , 然后 用个全局变量记录 i  每次启动i++,然后通过 i 去取list里面的值, 当i>list.size()的时候就把 i 变成 0 这样就可以达到循环的效果了,望采纳。。。。。
oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.10.10 18:38

Handler + Message 可以使用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android 后台每10秒钟启动一次应用的demo,一次启动,永不退出
我们的广告系统,为了防止被客户关闭,必须要每隔一段时间启动一次。 创建一个Service: 最关键的是onStartCommand 里面返回的Service.START_STICKY,  return Service.START_STICKY package com.wbm.app.servicetest.servic; import android.app.Service;
安卓:Handler实现图片轮播(非ViewPager)
1.布局文件放一个ImageView控件 2.逻辑代码文件中找出控件id 3.定义一个int类型的图片数组imgs存放图片 4.定义一个int类型的索引变量index 5.创建一个内部类实现Runable接口 6.定义一个Handler对象:Handler handler=new Handler();  定义一个步骤5创建的类对象并实例化:MyRunable myRunable=new
Android程序:使用ToggleButton,来切换图片
ToggleButton:有两种状态的Button(选中和未选中),可显示为不同的文本或者状态属性: android:checked=”ture” 按钮是否被选中 android:textOff=“关” android:textOn=“开” 则ture显示的是开功能实现:使用ToggleButton,来切换图片layout <ToggleButton android:
android 定时器,每秒变换一次图片!
<br />在android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,如果不使用handler就不能达到更新ui的效果,我的理解是handler中存在一个队列问题,可以保证不产生阻塞。<br /> <br />代码如下:<br /> <br />package com.my; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; impor
js实现多张图片每隔一秒换一张图片
html代码 "UTF-8"> "text/javascript" src="/plugin/jquery-easyui-1.4.3/jquery.min.js"> "background-color: pink"> "carousel" style="border:1px solid #000000; float:left; width:400px
ListView里每行显示不同图片
一开始,我以为在layout里布局,在写:     android:id="@+id/myimageview"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:src="@drawable/ic_launcher"/> 的时候,因为有Id,一个Ima
Android中实现点击变换图片
每次点击图片显示下一张,循环显示图片 实现思路: 将需要循环的图片放入数组中,图片Resource设置为数组,每次点击改变数组值,使得数组元素不断循环,从而循环显示图片数组元素循环可以通过整数不断对数组长度取余实现。 在布局中加入一个ImageView:<ImageView android:layout_width="match_parent" and
写一个线程,每隔10秒钟标准输出到屏幕上一个”hello world” , 打印10次以后退出。
写一个线程,每隔10秒钟标准输出到屏幕上一个”hello world” , 打印10次以后退出。   package cn.com.cloud.test; import java.text.SimpleDateFormat; import java.util.Date; public class ThreadTest { public static void main(String[] ar
Android实现WebView图片缓存,替换加载前默认图片的样式
实现Android中WebView图片的缓存,并且实现如何替换WebView中默认图片以及如何实现图片的点击。
android 点击按钮更换图片
我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中。所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们最容易想到的就是,手动监听按钮的选中和点击事件,然后写代码来替换按钮的背景,但是在android中,我们不需要这么麻烦,android早就替我们想好了解决方案,那就是selector资源。如果我们要实