java - 如何在android中下载图像?

标签 java android image download

我的右边有一张图片,左边有一个“下载”按钮。该图像来 self 的可绘制对象。现在,当我尝试单击下载时,我想将图像放到我的 SD 卡下载中。请帮助我,我只在 url 中看到有关下载的信息。有没有其他解决方案。谢谢

public class ImageDownloader {

public void download(String url, ImageView imageView) {
        BitmapDownloaderTask task = new BitmapDownloaderTask(imageView);
        task.execute(url);
    }
}

 /* class BitmapDownloaderTask, see below */
}

最佳答案

首先,您需要获取位图。你可以已经将它作为对象位图,或者你可以尝试从 ImageView 中获取它,例如:

 BitmapDrawable drawable = (BitmapDrawable) ImageView.getDrawable();
    Bitmap bitmap = drawable.getBitmap();

然后您必须从 SD 卡获取目录(文件对象),例如:

File sdCardDirectory = Environment.getExternalStorageDirectory();

接下来,创建用于图像存储的特定文件:

 File image = new File(sdCardDirectory, "test.png");

之后,您只需编写位图,例如:

boolean success = false;

// Encode the file as a PNG image.
FileOutputStream outStream;
try {

    outStream = new FileOutputStream(image);
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
    /* 100 to keep full quality of the image */

    outStream.flush();
    outStream.close();
    success = true;
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

最后,如果需要,只处理 boolean 结果。如:

if (success) {
    Toast.makeText(getApplicationContext(), "Image saved with success",
            Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(getApplicationContext(),
            "Error during image saving", Toast.LENGTH_LONG).show();
}

不要忘记在您的 list 中添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

关于java - 如何在android中下载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27772961/

相关文章:

java - 是否可以在 UI Automator Android 中进行 API 调用

html - 分享这个按钮图片

java - GWT - 自动增长文本区域

java - Preferences -> Google -> App Engine 不断返回原始配置 + 插件执行问题

java - 将列表类型添加到关联

java - 单击后退按钮会导致强制关闭/NullPointerException

javascript - 键盘消除后退按钮事件 - Android

java - 创建一个 Android 指示灯

javascript - 在图像上使用 max-width = 100% 和 max-height = 100%,计算显示宽度/高度

python - 从 map 上猜测 rgb 渐变?