我正在开发一个简单的应用程序,它显示图片就像tumblr和9gag。我无法完成它,我希望有人可以帮助我解决这个问题,我试图在一行中显示来自eversorandom.com的图片而没有标题或描述。
答案 0 :(得分:0)
尝试一下:
添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
这里的代码:
List<Bitmap> items = new ArrayList<Bitmap>();
private class ImageGetter extends AsyncTask<String, Void, Document> {
@Override
protected Document doInBackground(String... params) {
try {
Document doc = Jsoup.connect(params[0]).get();
for (int i=0; i<doc.select("div.tw_post*").size(); i++) {
// Normal size:
String normal = doc.select("div.tw_post*").get(i).select("a").select("img").attr("src").toString());
// Large size:
String hiRes = doc.select("div.tw_post*").get(i).select("a").select("img").attr("data-hi-res-src").toString());
// Decodes Normal size image:
BufferedInputStream in = new BufferedInputStream(new URL(normal).openStream());
// Puts in "items" array list:
items.add(BitmapFactory.decodeStream(in));
// Closes stream:
in.close();
}
return doc;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Document result) {
super.onPostExecute(result);
if (result == null) {
Toast.makeText(getApplicationContext(), "Error!", Toast.LENGTH_SHORT).show();
} else {
// what to do when some images are found
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// what to do before everything is done
}
}
在onCreate()
方法或其他任何地方使用:
new ImageGetter().execute("http://eversorandom.com");