通过滑动更改图片

时间:2017-10-27 13:42:49

标签: android image url view swipe

我的输入是一个包含大量图片网址的解析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 ?,我试着用谷歌搜索它近一周没有成功。提前谢谢

1 个答案:

答案 0 :(得分:0)

AsyncTasks不适合大多数异步解决方案。如今装载和服务有更好的东西。对于你,我建议你使用一个库来加载远程图像,因为你需要更多的东西,以确保像缓存一样顺畅的用户体验。即使您使用简单的AsyncTask解决此问题,在下载映像时应用程序状态发生变化也会给您带来很多麻烦(AsyncTaskLoaders解决了这个问题)。

所有这些都可以通过使用专用库来防止,例如Picasso。

http://square.github.io/picasso/

如果您仍想使用简单的AsyncTask解决方案。你有代码来启动AsyncTask吗?

new DownloadImageTask().execute(url);

对于滑动,您可以使用ViewPagerExample