0

我需要一些建议如何在我的应用程序中实现这种情况。

我有数组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] -> 用户点击后我想删除第一个位图,重新排序数组并将新的保存为最后一个..所以我的数组应该如下所示:位图 [ 2,3,4,5,6];

有什么建议/建议是最好的方法吗?

提前致谢!

4

1 回答 1

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;
    }
}
于 2012-05-10T07:25:37.587 回答