我正在开发一个简单的应用程序,它可以像tumblr和9gag一样显示图片。我无法完全完成,我希望有人能帮我解决这个问题,我正试图将eversorandom.com上的图片显示在一行中,没有标题或描述。
试试这个:
添加这些权限:
<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");