在两个图像之间循环
Loop between two images
我想在两个图像之间连续循环。第一张图片应该无限替换为第二张图片,第二张图片应该无限替换为第一张。
我目前的代码如下:
imageHandler = new Handler();
imageHandler.postDelayed(new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
}
}, 1000);
imageHandler.postDelayed(new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
}
}, 2000);
这里发生了翻转,但只发生了一次。我该如何编程让它可以无限重复?
声明两个可运行的:
Runnable goToImage2;
Runnable goToImage1 = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
handler.postDelayed(goToImage2, 2000);
}
}
goToImage2 = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
handler.postDelayed(goToImage1, 2000);
}
}
然后只需启动第一个:
handler.postDelayed(goToImage1, 0);
编辑:如果你只需要两张图片,你也可以简单地使用一个布尔值来知道要显示哪一张,因此只使用一个可运行的:
boolean isShowingFirst = true;
Runnable changeImage = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(isShowingFirst ? R.drawable.camera_icon : R.drawable.app_icon).into(iconImageView);
isShowingFirst = !isShowingFirst;
handler.postDelayed(changeImage, 2000);
}
}
并启动它:
handler.postDelayed(changeImage, 0);
我的建议是用一个线程来简化整个事情。
new Thread(new Runnable(){
public void run(){
while(true){
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
this.sleep(2000);
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
this.sleep(2000);
}
}
}).start();
对这个答案持保留态度,因为它可能不是您想要的实现方式。
我想在两个图像之间连续循环。第一张图片应该无限替换为第二张图片,第二张图片应该无限替换为第一张。
我目前的代码如下:
imageHandler = new Handler();
imageHandler.postDelayed(new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
}
}, 1000);
imageHandler.postDelayed(new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
}
}, 2000);
这里发生了翻转,但只发生了一次。我该如何编程让它可以无限重复?
声明两个可运行的:
Runnable goToImage2;
Runnable goToImage1 = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
handler.postDelayed(goToImage2, 2000);
}
}
goToImage2 = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
handler.postDelayed(goToImage1, 2000);
}
}
然后只需启动第一个:
handler.postDelayed(goToImage1, 0);
编辑:如果你只需要两张图片,你也可以简单地使用一个布尔值来知道要显示哪一张,因此只使用一个可运行的:
boolean isShowingFirst = true;
Runnable changeImage = new Runnable() {
@Override
public void run() {
Picasso.with(TokenActivity.this).load(isShowingFirst ? R.drawable.camera_icon : R.drawable.app_icon).into(iconImageView);
isShowingFirst = !isShowingFirst;
handler.postDelayed(changeImage, 2000);
}
}
并启动它:
handler.postDelayed(changeImage, 0);
我的建议是用一个线程来简化整个事情。
new Thread(new Runnable(){
public void run(){
while(true){
Picasso.with(TokenActivity.this).load(R.drawable.app_icon).into(iconImageView);
this.sleep(2000);
Picasso.with(TokenActivity.this).load(R.drawable.camera_icon).into(iconImageView);
this.sleep(2000);
}
}
}).start();
对这个答案持保留态度,因为它可能不是您想要的实现方式。