gpt4 book ai didi

android - picasso 从 URL 下载多张图片

转载 作者:太空狗 更新时间:2023-10-29 12:41:19 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我在其中使用 Picasso Library 从 URL 下载图像。

现在有一种情况:我可以从 URL: http://8020.photos.jpgmag.com/3456318_294166_528c960558_m.jpg 下载单个图像

但无法从 URL 下载多张图片: https://www.dropbox.com/sh/5be3kgehyg8uzh2/AAA-jYcy_21nLBwnZQ3TBFAea

这是我的代码:

package com.example.imagedownloadsample;

import java.io.File;
import java.io.FileOutputStream;

import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.squareup.picasso.Callback.EmptyCallback;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;

public class MainActivity extends ActionBarActivity {

String currentUrl ="http://8020.photos.jpgmag.com/3456318_294166_528c960558_m.jpg";
//String currentUrl = "https://www.dropbox.com/sh/5be3kgehyg8uzh2/AAA-jYcy_21nLBwnZQ3TBFAea";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_download);

final ImageView img = (ImageView) (findViewById(R.id.imageView1));

final ProgressBar progressBar = (ProgressBar) findViewById(R.id.loading);

Picasso.with(this).load(currentUrl).error(R.drawable.error_detail)
.into(img, new EmptyCallback() {
@Override
public void onSuccess() {
progressBar.setVisibility(View.GONE);
}

@Override
public void onError() {
progressBar.setVisibility(View.GONE);
}
});

Picasso.with(this).load(currentUrl).into(target);

}

private Target target = new Target() {
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
new Thread(new Runnable() {
@Override
public void run() {

String fileName = currentUrl.substring(
currentUrl.lastIndexOf('/') + 1,
currentUrl.length());

String fname = "/Android/data/com.usd.pop/image-"
+ fileName;

File file = new File(Environment
.getExternalStorageDirectory().getPath() + fname);
if (file.exists())
file.delete();
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, ostream);
ostream.close();
} catch (Exception e) {
e.printStackTrace();
}

}
}).start();
}

@Override
public void onBitmapFailed(Drawable errorDrawable) {
}

@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
if (placeHolderDrawable != null) {
}
}
};

}

现在我的问题是如何从该 URL 下载所有图像。 https://www.dropbox.com/sh/5be3kgehyg8uzh2/AAA-jYcy_21nLBwnZQ3TBFAea

最佳答案

我可能很笨,但我相信你正在使用 Java,我可以建议你使用 this教程。

这是从网站上获取所有图片的一些代码:

public class ExtractAllImages {
public static void main(String args[]) throws Exception {

String webUrl = "http://www.hdwallpapers.in/";
URL url = new URL(webUrl);
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
HTMLEditorKit.Parser parser = new ParserDelegator();
HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);
parser.parse(br, callback, true);

for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.IMG); iterator.isValid(); iterator.next()) {
AttributeSet attributes = iterator.getAttributes();
String imgSrc = (String) attributes.getAttribute(HTML.Attribute.SRC);

if (imgSrc != null && (imgSrc.endsWith(".jpg") || (imgSrc.endsWith(".png")) || (imgSrc.endsWith(".jpeg")) || (imgSrc.endsWith(".bmp")) || (imgSrc.endsWith(".ico")))) {
try {
downloadImage(webUrl, imgSrc);
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}
}
private static void downloadImage(String url, String imgSrc) throws IOException {
BufferedImage image = null;
try {
if (!(imgSrc.startsWith("http"))) {
url = url + imgSrc;
} else {
url = imgSrc;
}
imgSrc = imgSrc.substring(imgSrc.lastIndexOf("/") + 1);
String imageFormat = null;
imageFormat = imgSrc.substring(imgSrc.lastIndexOf(".") + 1);
String imgPath = null;
imgPath = "C:/Users/Machine2/Desktop/CTE/Java-WebsiteRead/" + imgSrc + "";
URL imageUrl = new URL(url);
image = ImageIO.read(imageUrl);
if (image != null) {
File file = new File(imgPath);
ImageIO.write(image, imageFormat, file);
}
} catch (Exception ex) {
ex.printStackTrace();
}

}}

关于android - picasso 从 URL 下载多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222807/

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