android - 上传图片步骤中,把选中的图片存本地的方法耗时如何处理?
天蓬老师
天蓬老师 2017-04-17 15:40:17
0
2
666
for (int i=0;i<paths.size();i++) {
        Bitmap bitmap = ImageCompressUtil.compressBySize(paths.get(i), 1000, 1000);
        ImageTools.savePhotoToSDCard(bitmap, Constants.MyAvatarDir, i + "");
        newPaths.add(Constants.MyAvatarDir + i + ".jpg");
    }

代码如上,paths为一个选中图片地址的list,现在我遍历他,进行压缩,以1、2、3数字来命名,并存入本地,在将压缩后的地址存入newpaths中,传入adapter显示。

现在出现了个问题,选中的图片还没来得及存入本地,覆盖原本以1、2、3数字来命名的图片,就传入adapter中,所以显示的图片是上次存的图片。

我的解决方法是延迟500ms后才传入adapter,显然这不是最好的方法,望大神们提供更加完美的解决方案。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
巴扎黑

setAdapter と NoticeDataSetChanged がどこにあるかによって異なります。上記のコード ブロックとは別のスレッドにある場合は、上記のコード ブロックの実行後にアダプターの更新メソッドを呼び出す必要があります。

いいねを押す +0
大家讲道理

オブザーバー パターンを使用して、ImageTools.savePhotoToSDCard メソッド、

にリスナーを渡すことができます。 リーリー

コードは次のように変更する必要があります

リーリー

もちろん、setAdapteradapter.notifyDataSetChanged() 呼び出しのタイミングを正しく処理することをお勧めします。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート