图像显示计数器
Counter for Images Displayed
我有一个正在运行的应用程序,其中图像从服务器下载,存储在本地并每隔几秒以幻灯片形式显示在图像视图中。我想计算每张图片的显示次数。我不确定如何解决这个问题。我应该制作 6 个计数器(每个图像一个)还是应该创建一个数组来存储图像名称和计数?但是我该如何更新呢?
任何帮助或代码片段将不胜感激。
protected void onPostExecute(String s) {
super.onPostExecute(s);
imageView = findViewById(R.id.imgholder);
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
// As timer is not a Main/UI thread need to do all UI task on runOnUiThread
DashboardActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// increase your position so new image will show
position++;
// check whether position increased to length then set it to 0
// so it will show images in circuler
if (position >= 6)
position = 0;
File file = new File(Environment.getExternalStorageDirectory(), user.fullName + "-" + position + ".jpg");
imgUri = Uri.fromFile(file);
Log.v("test", "Now Showing Image: " + imgUri.toString());
// Set Image
imageView.setImageURI(imgUri);
counter++;
Log.v("test","Image: "+ position +" has appeared: " +counter);
}
});
}
}, 0, DELAY_TIMER);
创建一个 HashMap 来存储计数
private HashMap<String, Integer> countMap = new HashMap<>();
现在每当您设置图像调用以下方法时:
private void updateDisplayCount(File file) {
if(countMap.containsKey(file.getName())) {
countMap.put(file.getName(), countMap.get(file.getName()) + 1);
} else {
countMap.put(file.getName(), 1);
}
}
以下代码将return显示计数
int count = countMap.get(file.getName())
创建一个长度为 6 int[] counters = new int[]{0,0,0,0,0}
的整数数组,然后在您的代码中 if(position >= 6) position = 0;
之后,将计数器递增为 counters[position]++;
。因此,您始终可以跟踪数组 counters
中特定位置的图像数量
我有一个正在运行的应用程序,其中图像从服务器下载,存储在本地并每隔几秒以幻灯片形式显示在图像视图中。我想计算每张图片的显示次数。我不确定如何解决这个问题。我应该制作 6 个计数器(每个图像一个)还是应该创建一个数组来存储图像名称和计数?但是我该如何更新呢?
任何帮助或代码片段将不胜感激。
protected void onPostExecute(String s) {
super.onPostExecute(s);
imageView = findViewById(R.id.imgholder);
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
// As timer is not a Main/UI thread need to do all UI task on runOnUiThread
DashboardActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// increase your position so new image will show
position++;
// check whether position increased to length then set it to 0
// so it will show images in circuler
if (position >= 6)
position = 0;
File file = new File(Environment.getExternalStorageDirectory(), user.fullName + "-" + position + ".jpg");
imgUri = Uri.fromFile(file);
Log.v("test", "Now Showing Image: " + imgUri.toString());
// Set Image
imageView.setImageURI(imgUri);
counter++;
Log.v("test","Image: "+ position +" has appeared: " +counter);
}
});
}
}, 0, DELAY_TIMER);
创建一个 HashMap 来存储计数
private HashMap<String, Integer> countMap = new HashMap<>();
现在每当您设置图像调用以下方法时:
private void updateDisplayCount(File file) {
if(countMap.containsKey(file.getName())) {
countMap.put(file.getName(), countMap.get(file.getName()) + 1);
} else {
countMap.put(file.getName(), 1);
}
}
以下代码将return显示计数
int count = countMap.get(file.getName())
创建一个长度为 6 int[] counters = new int[]{0,0,0,0,0}
的整数数组,然后在您的代码中 if(position >= 6) position = 0;
之后,将计数器递增为 counters[position]++;
。因此,您始终可以跟踪数组 counters