滑动更改图片
change picture by swiping
我的输入是经过解析的 JSON,其中包含大量图片 URL,我根据这些图片创建了一个列表:"urlPictureList"。 我正在尝试创建一个 android 视图,其中包含 4 个相框,每个相框都应该显示从 urlPictureList 中获取的图片,然后滑动将其更改为列表中的下一个 URL。向相反方向滑动会将图片变回上一张图片。 (可以多次滑动,并且应该显示列表中的上一张图片。
在我的主 activity 中,我使用了以下函数来保存数据:
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 class 中,我发现了一个可以从 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 解决了这个问题)。
所有这些都可以通过使用专用库来避免,例如 Picasso。
http://square.github.io/picasso/
如果您仍然想使用简单的 AsyncTask 解决方案。您有启动 AsyncTask 的代码吗?
new DownloadImageTask().execute(url);
对于滑动,您可以使用 ViewPager
。 Example