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

时间:2017-03-10 08:56:30

标签: android picasso

我在此处显示一个问题,即R.drawable.avatar_placeholder。当来自webservice的链接非空,但错误404.表示该链接路径上没有任何图像。如果我在下面运行此函数,则字符串"路径不为空"显示,但无法显示图像。任何建议都受到欢迎。感谢。

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));
    }

3 个答案:

答案 0 :(得分:3)

试试这个,

将错误图像设置为占位符图像

    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);
    }

的gradle:

    compile 'com.squareup.picasso:picasso:2.5.2'

答案 1 :(得分: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);

答案 2 :(得分:-1)

Picasso并没有改变Android memorey&慢 , 所以我建议你不要使用它 并且它的使用只是使用Glide libeary。

(你可以下载图像并使她的圈子滑行,下载图像一个位图等等)

添加到Gradle:

  

存储库{mavenCentral()// jcenter()也可以,因为它   拉从Maven Central}

     

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

而且只是:

加载图片:

Glide.with(this).load("URL").into(imageView);

你可以通过glide添加更多功能, 例如,如果你想要一个占位符,直到照片将加载 你只是添加.placeholder():   :

  

Glide.with(本).load( “URL”)的占位符(R.drawable.placeholder).into(ImageView的);

如果您想要显示您尝试加载的照片的照片已损坏或有任何问题,只需添加.error()

  

Glide.with(本).load( “URL”)错误(R.drawable.error).placeholder(R.drawable.placeholder).into(ImageView的);