毕加索没有以横向方向设置图像

时间:2016-01-27 17:01:55

标签: picasso

我想将图像设置为imageView。在纵向方向上它可以正常工作。但是当设备具有横向方向时,它不会加载图像 奇怪的是,一旦我将其旋转为肖像并回到横向,它就会正确显示图像。

private void setPhoto(File photoFile) {
    readyToDelete=false;
    try {
        Transformation transformation = new RoundedTransformationBuilder()
                .borderColor(Color.parseColor("#757575"))
                .borderWidthDp(3)
                .cornerRadiusDp(15)
                .oval(false)
                .build();


        Picasso.with(this)
                .load(photoFile)
                .fit()
                .centerInside()
                .transform(transformation)
                .into(imageView);

        imageView.setVisibility(View.VISIBLE);
        deleteImageTextView.setVisibility(View.VISIBLE);
        addImageTextView.setVisibility(View.GONE);
        editScrollView.invalidate();
}

1 个答案:

答案 0 :(得分:0)

在加载图像时似乎内存不足,在横向图像中,图像较大以适合视图。 试试这个:

Picasso picasso = new Picasso.Builder(image.getContext())
                .listener(new Picasso.Listener() {
                    @Override
                    public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)
                    {
                        Log.e(TAG, "Picasso error:"+exception.getCause().getMessage()+"\n"+uri);
                    }

                })
                .build();

然后使用毕加索实例:

picasso.load(photoFile)....

我建议你在加载时使用一个监听器,如果你有错误,只需加载图像调整大小以降低分辨率,例如屏幕尺寸的一半,让screenSize为设备的像素大小屏幕最大轴:

picasso.load(photoFile).....into(_imageView, new Callback.EmptyCallback(){
            @Override
            public void onError()
            {
                picasso.load(photoFile).resize(screenSize/2, screenSize/2).centerInside().transform(transformation).into(imageView);
            }
        });

无论如何,你在听众身上得到的日志会给你一些发生了什么的线索