Java 使用计时器更新android用户界面
我是android编程新手,我搜索了关于这个主题的所有答案,但仍然无法实现我想要做的事情。我的问题是:我想用给定时间段内的另一张图片更新imageview中的图片。每次需要使用不同的图片更新imageview,总共15-20次。这是我迄今为止所做的,但它根本不起作用Java 使用计时器更新android用户界面,java,android,user-interface,timer,Java,Android,User Interface,Timer,我是android编程新手,我搜索了关于这个主题的所有答案,但仍然无法实现我想要做的事情。我的问题是:我想用给定时间段内的另一张图片更新imageview中的图片。每次需要使用不同的图片更新imageview,总共15-20次。这是我迄今为止所做的,但它根本不起作用 public class IlkMasal extends Activity { MediaPlayer sound; private Handler m_handler; private ImageVie
public class IlkMasal extends Activity {
MediaPlayer sound;
private Handler m_handler;
private ImageView image;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firsttale);
m_handler = new Handler();
Button menu = (Button)findViewById(R.id.Button01);
Button startbutton = (Button)findViewById(R.id.button1);
sound = MediaPlayer.create(this, R.raw.music4);
sound.start();
image = (ImageView)findViewById(R.id.imageView1);
image.setImageResource(R.drawable.picture2);
startbutton.setOnClickListener(new OnClickListener(){
public void onClick(View v){
m_handler.removeCallbacks(m_statusChecker);
m_handler.postDelayed(m_statusChecker, 2000);
}
});
menu.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent main= new Intent("android.intent.action.MAIN");
startActivity(main);
}
});
}
Runnable m_statusChecker = new Runnable()
{
public void run(){
image.setImageResource(R.drawable.picture3);
m_handler.removeCallbacks(m_statusChecker);
m_handler.postDelayed(m_statusChecker, 2000);
}
};
}
单击开始按钮后,我希望每次都用不同的图片更新ui。非常感谢您的帮助。用于从非UI线程更新UI元素,如下所示:
Current_Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
image.setImageResource(R.drawable.picture3); //Update UI elements here
}
});
你可以将这个runnable设置为在你的onClic上运行,你仍然需要一个方法来获取你想要显示的下一张图片
final int delay = 5000;
final int period = 1000;
final Runnable r = new Runnable() {
public void run() {
image.setImageResource(getNextPicture());
postDelayed(this, period);
}
};
postDelayed(r, delay);
问候。为什么使用-1?没有评论?最好知道我是否在某些方面弄错了:)如果有帮助,你可以将一个答案设置为正确:)