gpt4 book ai didi

java - 同时更改多个 ImageView 的图像

转载 作者:行者123 更新时间:2023-12-05 07:35:00 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个 Activity 在一个 ScrollView 中包含 20 个不同的 ImageViews。而且我需要能够同时高效地更改每个 ImageView 的图像。什么 Java 代码 适合执行此操作?

这就是我声明我的 ImageViews 的方式:

private ImageView imageView1;
imageView1 = (ImageView) findViewById(R.id.imageView1);
...
...
private ImageView imageView20;
imageView20 = (ImageView) findViewById(R.id.imageView20);

最佳答案

希望这对你有帮助,请研究这个例子,看看它是否是你想要的:

package com.my.example;

import android.app.Activity;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import android.content.*;
import android.content.res.*;
import android.graphics.*;
import android.graphics.drawable.*;
import android.widget.ImageView;
import java.util.Timer;
import java.util.TimerTask;


public class MainActivity extends Activity {

private Timer _timer = new Timer();

private double counterForImageView1 = 0;
//...
private double counterForImageView20 = 0;
private double duration = 1000;

//duration determinates when the images will be changed
//every image will be displayed for a certain amount of time then it gets changed
//in this example duration = 1000 which means that every image will be displayed for 1000 milliseconds ( 1 second )

private ImageView imageview1;
//...
private ImageView imageview20;

private TimerTask imagesChanger;
@Override
protected void onCreate(Bundle _savedInstanceState) {
super.onCreate(_savedInstanceState);
setContentView(R.layout.main);
initialize(_savedInstanceState);
initializeLogic();
}

private void initialize(Bundle _savedInstanceState) {

imageview1 = (ImageView) findViewById(R.id.imageview1);
//...
imageview20 = (ImageView) findViewById(R.id.imageview20);
}

private void initializeLogic() {
imagesChanger = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
switch((int)counterForImageView1) {
case ((int)0): {
imageview1.setImageResource(getResources().getIdentifier("image1_for_imageview1", "drawable", getPackageName()));
counterForImageView1++;
break;
}
case ((int)1): {
imageview1.setImageResource(getResources().getIdentifier("image2_for_imageview1", "drawable", getPackageName()));
counterForImageView1++;
break;
}
case ((int)2): {
imageview1.setImageResource(getResources().getIdentifier("image3_for_imageview1", "drawable", getPackageName()));
counterForImageView1 = 0;
break;
}
//the amount of cases depends on the amount of images you want to display for every ImageView
}
//...
switch((int)counterForImageView20) {
case ((int)0): {
imageview1.setImageResource(getResources().getIdentifier("image1_for_imageview20", "drawable", getPackageName()));
counterForImageView20++;
break;
}
case ((int)1): {
imageview1.setImageResource(getResources().getIdentifier("image2_for_imageview20", "drawable", getPackageName()));
counterForImageView20++;
break;
}
case ((int)2): {
imageview1.setImageResource(getResources().getIdentifier("image3_for_imageview20", "drawable", getPackageName()));
counterForImageView20 = 0;
break;
}
}
}
});
}
};
_timer.scheduleAtFixedRate(imagesChanger, (int)(0), (int)(duration));
}

@Override
protected void onActivityResult(int _requestCode, int _resultCode, Intent _data) {

super.onActivityResult(_requestCode, _resultCode, _data);

switch (_requestCode) {

default:
break;
}
}

}

关于java - 同时更改多个 ImageView 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com