gpt4 book ai didi

android - 图片在 android 的 listview 中显示不正确

转载 作者:行者123 更新时间:2023-11-30 00:00:15 25 4
gpt4 key购买 nike

我正在下载多个附件,然后在 sdcard 中写入图像,但我的问题是,当在显示半黑图像的列表中显示来自 sdcard 的图像时,我正在使用 picasso 图像加载器来显示来自 sdcard 的图像。我在使用 glide images loader 时遇到了同样的问题。看截图enter image description here

注意:当我在 SD 卡中看到图片时,它正在正确下载。

//显示sdcard中的图片

Picasso.get().load(uri).resize(200, 200).centerCrop().into(holder.imageAttach);

//代码通过URL下载图片并写入sdcard

URL url = new URL(urlString);//Create Download URl
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();//Open Url Connection
urlConnection.setRequestMethod("GET");//Set Request Method to "GET" since we are getting data
urlConnection.connect();//connect the URL Connection
double fileSize = 0;

//Create New File if not present
if (!filePath.exists()) {
filePath.createNewFile();
}

//If Connection response is not OK then show Logs
if (urlConnection.getResponseCode() != HttpURLConnection.HTTP_OK) {
Log.e("AutoDownloader", "Server returned HTTP "
+ urlConnection.getResponseCode()
+ " " + urlConnection.getResponseMessage());
}

BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(filePath));//Get OutputStream for NewFile Location

InputStream is = urlConnection.getInputStream();//Get InputStream for connection

byte[] buffer = new byte[1024];//Set buffer type
int len1 = 0;//init length
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);//Write new file
}

//Close all connection after doing task
fos.close();
is.close();

Log.i("AutoDownloader", "downloadAttachmentInByte startDownload success");
try{
((Activity)ContextHelper.getContext()).runOnUiThread(new Runnable() {
@Override
public void run() {
progressBar.setVisibility(View.GONE);
}
});
} catch (Exception e){
e.printStackTrace();
}

最佳答案

我认为您的图像没有正确下载。我建议让 Picasso 为您完成所有工作。 -

Target target = new Target() {  
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
holder.imageAttach.setImageBitmap(bitmap);
new Thread(new Runnable() {

@Override
public void run() {

File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + url);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
ostream.flush();
ostream.close();
} catch (IOException e) {
Log.e("IOException", e.getLocalizedMessage());
}
}
}).start();
}

@Override
public void onBitmapFailed(Drawable errorDrawable) {}

@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {}
};

Picasso.with(getApplicationContext())
.load(photoUrl)
.resize(200, 200)
.into(target);

关于android - 图片在 android 的 listview 中显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50056288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com