java - 无法从android中的服务器加载图像

标签 java android

我在这里尝试从服务器下载图像。但它总是抛出异常。任何人都可以告诉我为什么会发生这种情况以及正确的方法是什么?

 public static String getBitmap(String url) throws IOException {

        InputStream is = (InputStream) new URL(url).getContent();
        Bitmap bmp= BitmapFactory.decodeStream(is);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        byte[] b=stream.toByteArray();
        String encoded = Base64.encodeToString(b, Base64.DEFAULT);


        is.close();
        return encoded;


}

最佳答案

请尝试使用此功能获取位图并下载位图

Bitmap bitmap = getBitmapfromUrl(imageurl);
imageview.setImageBitmap(bitmap);

SaveImage(bitmap);

public Bitmap getBitmapfromUrl(String imageUrl) {
    try {
        URL url = new URL(imageUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap bitmap = BitmapFactory.decodeStream(input);
        return bitmap;

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;

    }
}

private void SaveImage(Bitmap finalBitmap) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/saved_images");
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-" + n;
    File file = new File(myDir, fname);
    if (file.exists()) file.delete();
    try {
        FileOutputStream out = new FileOutputStream(file);
        finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

并在 list 文件中添加此权限

关于java - 无法从android中的服务器加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43993163/

相关文章:

java - 如何通过按钮启用 3G - android

java - 使用elasticsearchoperations与elasticsearchtemplate有什么区别?

java - 完整网站的参数管理!

java - 如何使用迭代器对象访问方法 GetEmployeeDetails()

android - 运行 halfninja android-ffmpeg-x264 ProjectTest 时检测运行失败

java - EditText 中的错误弹出窗口未显示?

android - 显示国家及其调用代码,但使用 Android XML 返回其缩写代码

java - Servlet 3.0项目打包WAR时修改WebInitParam

android - 当我尝试启动服务时权限被拒绝

android - JSON 服务调用不返回任何内容