我的输入是包含大量图片 URL 的解析 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 类中,我发现了一个应该从 url 下载图像的函数:
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?,我尝试了将近 1 周的谷歌搜索,但没有成功。提前致谢
AsyncTasks 不是大多数异步解决方案的理想选择。现在有更好的东西可用,比如加载器和服务。对于你,我建议你使用一个库来加载远程图像,因为你需要的不仅仅是这些来确保像缓存这样的流畅的用户体验。即使您使用简单的 AsyncTask 解决了这个问题,当您的应用程序状态在下载图像时发生变化时也会给您带来很多麻烦(AsyncTaskLoaders 解决了这个问题)。
所有这些都可以通过使用专用库来防止,例如毕加索。
http://square.github.io/picasso/
如果您仍然想使用简单的 AsyncTask 解决方案。你有启动 AsyncTask 的代码吗?
new DownloadImageTask().execute(url);
对于刷卡,您可以使用ViewPager
. 例子
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句