android - 上传图片步骤中,把选中的图片存本地的方法耗时如何处理?
天蓬老师
天蓬老师 2017-04-17 15:40:17
0
2
719
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 및 informDataSetChanged가 어디에 있는지에 따라 다릅니다. 위의 코드 블록과 다른 스레드에 있는 경우 어댑터 새로 고침 메서드를 호출하기 전에 위의 코드 블록을 실행해야 합니다.

大家讲道理

관찰자 패턴을 사용하고 ImageTools.savePhotoToSDCard 메소드에 리스너를 전달할 수 있습니다.

으아아아

그래서 코드를 이렇게 바꿔야 합니다

으아아아

물론 setAdapter, adapter.notifyDataSetChanged() 호출 타이밍을 정확하게 처리하는 것이 좋습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿