Android 当存在无效路径时,如何使毕加索显示默认图像

Android 当存在无效路径时,如何使毕加索显示默认图像,android,picasso,Android,Picasso,我在这里有一个显示默认图像名称的问题R.drawable.avatar\u占位符。当来自webservice的链接为非空,但出现错误404时。表示该链接路径上没有任何图像。如果我在下面运行这个函数,会显示字符串“path not empty”,但它无法显示图像。欢迎任何建议。谢谢 private void loadProfileDetails() { Logger.d(UI_LoginFragmentWithPin.class, "loadProfileDetails profi

我在这里有一个显示默认图像名称的问题R.drawable.avatar\u占位符。当来自webservice的链接为非空,但出现错误404时。表示该链接路径上没有任何图像。如果我在下面运行这个函数,会显示字符串“path not empty”,但它无法显示图像。欢迎任何建议。谢谢

private void loadProfileDetails() {
        Logger.d(UI_LoginFragmentWithPin.class, "loadProfileDetails profile image: " + PrefUtils.readString(Constant.PREF_PROFILE_IMAGE));
        if (!TextUtils.isEmpty(PrefUtils.readString(Constant.PREF_PROFILE_IMAGE))){
            Utils.println("path not empty");
            LPicasso.getInstance(getActivity())
                    .load(PrefUtils.readString(Constant.PREF_PROFILE_IMAGE))
                    .config(Bitmap.Config.RGB_565)
                    .resize(200, 200)
                    .centerCrop()
                    .into(imgProfile);
        }else {
            Utils.println("path empty");
            LPicasso.getInstance(getActivity())
                    .load(R.drawable.avatar_placeholder)
                    .config(Bitmap.Config.RGB_565)
                    .resize(200, 200)
                    .centerCrop()
                    .into(imgProfile);

        }
        tvEmail.setText(PrefUtils.readString(Constant.PREF_EMAIL));
        tvName.setText(PrefUtils.readString(Constant.PREF_USER_NAME) + " " + PrefUtils.readString(Constant.PREF_USER_SURNAME));
    }
试试这个

    Picasso.with(this)
     .load("YOUR IMAGE URL HERE")        
     .placeholder(DRAWABLE RESOURCE)       
     .error(DRAWABLE RESOURCE)      // Image to load when something goes wrong 
     .resize(width, height)                            
     .rotate(degree)                                 
     .into(imageView);
将错误图像设置为占位符图像

    if(!PrefUtils.readString(Constant.PREF_PROFILE_IMAGE).equals("")) 
    {
        Picasso.with(context).load(PrefUtils.readString(Constant.PREF_PROFILE_IMAGE)).resize(200,200).centerCrop().error(R.drawable.avatar_placeholder).into(imgProfile);
    }
    else
    {
        Picasso.with(context).load(R.drawable.avatar_placeholder).error(R.drawable.avatar_placeholder).resize(200,200).centerCrop().into(imgProfile);
    }
格拉德尔:

    compile 'com.squareup.picasso:picasso:2.5.2'
试试这个

    Picasso.with(this)
     .load("YOUR IMAGE URL HERE")        
     .placeholder(DRAWABLE RESOURCE)       
     .error(DRAWABLE RESOURCE)      // Image to load when something goes wrong 
     .resize(width, height)                            
     .rotate(degree)                                 
     .into(imageView);

毕加索没有管理android memorey&slow, 所以我建议你不要使用它 安装时只需使用Glide libeary即可

(您可以下载图像,并使用glide使其旋转,下载图像位图等)

添加到Gradle:

存储库{mavenCentral()//jcenter()也可以工作,因为它 来自Maven Central}

依赖项{compile'com.github.bumptech.glide:glide:3.7.0'
编译'com.android.support:support-v4:19.1.0'}

只是:

对于加载pic:

Glide.with(this).load("URL").into(imageView);
你可以通过glide添加更多功能, 例如,如果在照片加载之前需要占位符 您只是在添加.placeholder(): :

使用(this.load(“URL”).placeholder(R.drawable.placeholder).into(imageView)

如果您想在您试图加载的照片损坏或有任何问题的情况下显示照片,只需添加.error()

:

Glide.with(this).load(“URL”).error(R.drawable.error).placeholder(R.drawable.placeholder).into(imageView)


只需添加“.error(R.drawable.placeholder)”@Rajesh Kushvaha Sweet。。。。!!!谢谢。你的答案和用户2025187已经给出的答案有什么区别?他的答案贴在我的前面。你不能在三分钟内回答问题谢谢你的建议。由于我目前的项目是使用毕加索,我会尝试你的建议,当我有空闲时间。如你所知,我们正急于完成这个项目削减条件真的有必要吗?如果映像不存在,.error(..)方法本身将处理该问题。顺便说一句,如果SharePreference中的值为null,(!PrefUtils.readString(Constant.PREF_PROFILE_image).equals(“”)将崩溃。最好用另一种方法。if(“.”等于(!PrefUtils.readString(Constant.PREF\u PROFILE\u IMAGE)))