我需要一些建议如何在我的应用程序中实现这种情况。
我有bitmpaps
数组,我用它来存储Canvas
的不同状态,所以我将来可以使用它们。以下是我使用的代码:
private Bitmap[] temp;
// on user click happens this ->
if(index<5){
temp[index] = Bitmap.createBitmap(mBitmap);
index++;
}
所以基本上我只想保存最后5个位图,具体取决于用户的操作。我想学的东西是如何更新我的数组,所以我总能拥有最后5位图。
这就是我的意思:
位图[1,2,3,4,5] - &gt;用户点击后我想删除第一个位图,重新排序数组并将新数据保存为最后一个..所以我的数组应如下所示:Bitmaps [2,3,4,5,6];
任何建议/建议是最好的方法吗?
提前致谢!
答案 0 :(得分:2)
我刚写了这个...... 使用此代码初始化:
Cacher cach = new Cacher(5);
//when you want to add a bitmap
cach.add(yourBitmap);
//get the i'th bitmap using
cach.get(yourIndex);
请记住,您可以重新实现函数get
以返回第i个“旧”位图
public class Cacher {
public Cacher(int max) {
this.max = max;
temp = new Bitmap[max];
time = new long[max];
for(int i=0;i<max;i++)
time[i] = -1;
}
private Bitmap[] temp;
private long[] time;
private int max = 5;
public void add(Bitmap mBitmap) {
int index = getIndexForNew();
temp[index] = Bitmap.createBitmap(mBitmap);
}
public Bitmap get(int i) {
if(time[i] == -1)
return null;
else
return temp[i];
}
private int getIndexForNew() {
int minimum = 0;
long value = time[minimum];
for(int i=0;i<max;i++) {
if(time[i]==-1)
return i;
else {
if(time[i]<value) {
minimum = i;
value = time[minimum];
}
}
return minimum;
}
}