无法使用毕加索

时间:2015-08-19 21:40:48

标签: android imageview picasso

我使用piccaso 2.5.2并且在我的gradle中有okhttp 2.4.0和okhttp-urlconnection 2.4.0。 ImageView是零件自定义列表项布局。错误是ImageView中没有任何内容。它仅针对列表的第一项发生。该列表用于填充SwipeFlingAdapterView,类似于ListViewSwipeFlingAdapterView来自此库https://github.com/Diolor/Swipecards 好的,这是我的代码。

Picasso.with(mActivity)
                        .load(url)
                        .resize(540, 720)
                        .centerCrop()
                        .into(vh.iv_profile);
xml文件中的

ImageView

<ImageView
    android:id="@+id/imageview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:background="@android:color/white"/>

上面的代码不起作用,所以我尝试用这个来记录错误。

Picasso picasso = new Picasso.Builder(mActivity).listener(new Picasso.Listener() {
                    @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {
                        exception.printStackTrace();
                        Log.e("Picasso","description",exception);
                    }
                }).build();

picasso.load(url)
                .resize(540, 720)
                .centerCrop()
                .into(vh.iv_profile);

它没有显示错误。它甚至没有进入onImageLoadFailed。所以,我尝试其他方式。

picasso.load(url)
       .resize(540, 720)
       .centerCrop()
       .into(vh.iv_profile, new Callback() {
                            @Override
                            public void onSuccess() {
                                if(vh.iv_profile.getHeight() == 0){
                                    vh.iv_profile.setImageDrawable(mActivity.getResources().getDrawable(R.drawable.img_default));
                                Toast.makeText(mActivity, "we get here", Toast.LENGTH_SHORT).show();
                                }
                            }

                            @Override
                            public void onError() {

                            }
                        });
在回调中

OnSuccess,我甚至无法再从drawable中设置Image。如果我在使用picasso.load之前设置Drawable,我可以成功设置它。我还尝试在没有.centerCrop()的情况下使用它。它不起作用。 这是最终的代码。

try {
                Picasso.with(mActivity).load(url).into(new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {

                        Log.i("picasso error", "bitmap loaded");
                        if (bitmap != null) {
                            vh.iv_profile.setImageBitmap(bitmap);
                            int width = bitmap.getWidth();
                            int height = bitmap.getHeight();
                            Log.i("picasso error", width + ", " + height);
                        }


                    }

                    @Override
                    public void onBitmapFailed(Drawable errorDrawable) {

                    }

                    @Override
                    public void onPrepareLoad(Drawable placeHolderDrawable) {

                    }
                });
            }catch(Exception e){
                Log.i("picasso error", "exception");
            }

onBitmapLoaded,我得到一个宽度和高度为243的位图,但它没有出现在ImageView中。 请帮忙!

0 个答案:

没有答案