我的输入是一个包含大量图片网址的解析JSON,我创建了一个列表:" urlPictureList"。 我正在尝试创建一个包含4个图片框架的android视图,每个框架应该显示从urlPictureList中获取的图片,并且在滑动时将其更改为列表中的下一个URL。向相反方向滑动会将图片更改回上一张图片。 (可以进行多次滑动,并且应该在列表中显示上一张图片。
在我的主要活动中,我使用以下函数来保存数据:
public void sendMessage(View view) {
Intent intent = new Intent(this, act2 .class);
List<Song> songList = parseJson().second;
intent.putExtra("MainActivity", (Serializable) songList);
startActivity(intent);
}
在我的act2课程中,我找到了一个应该从网址下载图片的函数:
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
下载功能不起作用,我对下一步该做什么一无所知。 我的第一个问题是如何在每个帧上显示图像。 其次,滑动手势对我不起作用,也许我不应该使用imageView ?,我试着用谷歌搜索它近一周没有成功。提前谢谢
答案 0 :(得分:0)
AsyncTasks不适合大多数异步解决方案。如今装载和服务有更好的东西。对于你,我建议你使用一个库来加载远程图像,因为你需要更多的东西,以确保像缓存一样顺畅的用户体验。即使您使用简单的AsyncTask解决此问题,在下载映像时应用程序状态发生变化也会给您带来很多麻烦(AsyncTaskLoaders解决了这个问题)。
所有这些都可以通过使用专用库来防止,例如Picasso。
http://square.github.io/picasso/
如果您仍想使用简单的AsyncTask解决方案。你有代码来启动AsyncTask吗?
new DownloadImageTask().execute(url);
对于滑动,您可以使用ViewPager
。 Example