现在,只要我点击,图像就会改变。
我想让这个过程自动化(例如每秒一次)
这是我的实际代码
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageView:
foto.setVisibility(View.INVISIBLE);
foto1.setVisibility(View.VISIBLE);
break;
case R.id.imageView2:
foto1.setVisibility(View.INVISIBLE);
foto.setVisibility(View.VISIBLE);
}
}
答案 0 :(得分:2)
查看ViewFlipper
http://developer.android.com/reference/android/widget/ViewFlipper.html
您可以使用setFlipInterval(int)
或使用android:flipInterval
答案 1 :(得分:0)
你应该使用Handler
和`postDelayed'。有关代码,请参阅this answer。
此外,您可以尝试使用“ImageSwitcher”而不是两个“ImageView”
答案 2 :(得分:0)
试试这个:
boolean isFirstVisible;
long millis;
while(true) {
millis = System.currentTimeMillis();
if (isFirstVisible) {
foto1.setVisibility(View.INVISIBLE);
foto.setVisibility(View.VISIBLE);
isFirstVisible = false;
} else {
foto.setVisibility(View.INVISIBLE);
foto1.setVisibility(View.VISIBLE);
isFirstVisible = true;
}
Thread.sleep(1000 - millis % 1000);
}
答案 3 :(得分:0)
也许使用ViewSwitcher(在您的casae ImageSwitcher应该可以使用)并使用View
切换Handler
?
private static final int delay=1000; //ms
Handler h = new Handler();
Runnable r = new Runnable(){
public run(){
//viewSwitcher.showNext();
//exampole of swtiching
h.postDelayed(r, delay);
}
}
h.postDelayed(r, delay);
停止此循环使用h.removeCallbacks(r)
您也可以使用viewSwitcher.postDelayed
答案 4 :(得分:0)
您可以定期执行任务:
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(1);
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
if (foto.getVisibility == View.VISIBLE) {
foto.setVisibility(View.INVISIBLE);
foto1.setVisibility(View.VISIBLE);
} else {
foto.setVisibility(View.VISIBLE);
foto1.setVisibility(View.INVISIBLE);
}
}
});
}
}, 0, 1, TimeUnit.SECONDS);