android - 无法从 Google 个人资料图片网址获取位图

标签 android bitmap android-bitmap bitmapfactory

我有一个应用程序,我试图从通过谷歌集成获得的链接中检索图像。然而,每当我尝试将图片放入位图中时,它总是会给我一个错误。代码和错误如下:

代码:

if (google_user_gallery_pic.isEmpty() == true)
{
    if (google_user_pic.isEmpty() == false)
    {
        onPost = null;
        onPost2 = null;
        onPost = getBitmapFromURL(google_user_pic);
        onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }

    else
    {
        onPost = null;
        onPost2 = null;
        onPost = BitmapFactory.decodeFile(google_user_gallery_pic);
        if (onPost == null)
        {
            onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson);
        }

        else
        {
            onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
        }
    }
}

else
{
    onPost = null;
    onPost2 = null;
    onPost = BitmapFactory.decodeFile(google_user_gallery_pic);
    if (onPost == null)
    {
        onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson);
        //onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }

    else
    {
        onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }
}

错误:

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: https:/lh3.googleusercontent.com/-HW5Tk9h1V2I/AAAAAAAAAAI/AAAAAAAADA8/7UbMeHbyFLM/photo.jpg: open failed: ENOENT (No such file or directory)

网址:

https://lh3.googleusercontent.com/-HW5Tk9h1V2I/AAAAAAAAAAI/AAAAAAAADA8/7UbMeHbyFLM/photo.jpg

此网址在一个页面上有效,但在另一页面上无效。两个页面都是 fragment Activity 。任何帮助将不胜感激,谢谢!

最佳答案

尝试将 if 和 else 条件反转为如下所示:

if (google_user_gallery_pic.isEmpty() == false)
{
    if (google_user_pic.isEmpty() == false)
    {
        onPost = null;
        onPost2 = null;
        onPost = getBitmapFromURL(google_user_pic);
        onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }

    else
    {
        onPost = null;
        onPost2 = null;
        onPost = BitmapFactory.decodeFile(google_user_gallery_pic);
        if (onPost == null)
        {
            onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson);
        }

        else
        {
            onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
        }
    }
}

else
{
    onPost = null;
    onPost2 = null;
    onPost = BitmapFactory.decodeFile(google_user_gallery_pic);
    if (onPost == null)
    {
        onPost2 = BitmapFactory.decodeResource(getResources(), R.drawable.the_smallperson);
        //onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }

    else
    {
        onPost2 = onPost2.createScaledBitmap(onPost, 100, 100, false);
    }
}

因为给定了权限和其他任何东西而不是这个代码 fragment ,所以除了这个之外没有任何问题

关于android - 无法从 Google 个人资料图片网址获取位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43296252/

相关文章:

java - 加载图像并在加载完成后进行设置

android - BitmapFactory.decodeFile 为空

java - 优化 RoaringBitmap 的序列化

android - 获取未通过 Google Play 安装的应用程序的堆栈跟踪

android - AFMA_ReceiveMessage 未使用 APPODEAL 定义

android - 更改 Nativescript Listview `onItemTap` 背景颜色?

java - 如何在android中的视频上添加应用程序 Logo

android - ImageView.setImageBitmap() 是否回收之前设置的位图?

java - 如何使用位图 getPixels 函数从列中复制像素

android - float View ,这样它们就不会占用布局中的空间