如何在活动开始前使用通用图像加载器下载图像?

时间:2015-05-21 00:27:18

标签: android android-studio

这是我的Universal Image Loader工作正常。它下载图像然后显示它,但您可以看到默认图像和下载图像之间的变化。我想加载要在前一个活动中加载的图像并直接在这个活动中显示它,而不会发生我可以看到的更改。如何实现这一点以及如何在单击按钮时下载并显示新图片?我使用旋转,因为我得到一个纵向视图,设备以横向显示它。我可以根据它们的方式以纵向/横向自动显示它们吗?

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_after_login);

        // UNIVERSAL IMAGE LOADER SETUP
        DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                .cacheOnDisc(true).cacheInMemory(true)
                .imageScaleType(ImageScaleType.EXACTLY)
                .displayer(new FadeInBitmapDisplayer(300)).build();

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                getApplicationContext())
                .defaultDisplayImageOptions(defaultOptions)
                .memoryCache(new WeakMemoryCache())
                .discCacheSize(100 * 1024 * 1024).build();

        ImageLoader.getInstance().init(config);
        // END - UNIVERSAL IMAGE LOADER SETUP

        //your image url
        String url = "imageUrl";

        ImageLoader imageLoader = ImageLoader.getInstance();
        DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
                .cacheOnDisc(true).resetViewBeforeLoading(true)
                .showImageForEmptyUri(R.drawable.defaultimage)
                .showImageOnFail(R.drawable.defaultimage)
                .showImageOnLoading(R.drawable.defaultimage).build();

//initialize image view
        ImageView imageView = (ImageView) findViewById(R.id.imageFromServer);
        imageView.setRotation(270);

//download and display image from url
        imageLoader.displayImage(url, imageView, options);
    }

1 个答案:

答案 0 :(得分:0)

您可以下载上一个活动中的图像并将其写入磁盘上的文件。然后将该文件的名称(或使用固定名称)传递给此活动并从磁盘加载它。相当简单,你只需要确保在下载完成之前不要开始活动 - 否则你会看到延迟。