getting image width and height with picasso library

前端 未结 2 1779
野的像风
野的像风 2020-12-05 14:54

i\'m using picasso library to download and load images into imageView. now i want to know how i can get image width and height before loading them in imageViews ?

i

相关标签:
2条回答
  • 2020-12-05 15:26

    You can get Bitmap dimensions only after downloading It - you must use synchronous method call like this:

    final Bitmap image = Picasso.with(this).load("http://").get();
    int width = image.getWidth();
    int height = image.getHeight();
    

    After this you can call again load with same url (It will be fetched from cache):

     Picasso.with(this).load("http://").into(imageView)
    

    Edit: Maybe better way:

     Picasso.with(this).load("http://").into(new Target() {
                @Override
                public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                    int width = bitmap.getWidth();
                    int height = bitmap.getHeight();
                    imgView.setImageBitmap(bitmap);
                }
    
                @Override
                public void onBitmapFailed(Drawable errorDrawable) {
    
                }
    
                @Override
                public void onPrepareLoad(Drawable placeHolderDrawable) {
    
                }
            });
    
    0 讨论(0)
  • 2020-12-05 15:31

    Work for me.

    Picasso.with(context).load(imageLink).into(imageView, new Callback() {
            @Override
            public void onSuccess() {
                Picasso.with(context).load(imageLink).into(new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                        int width = bitmap.getWidth();
                        int height = bitmap.getHeight();
                        Log.d("ComeHere ", " W : "+ width+" H : "+height);
                    }
    
                    @Override
                    public void onBitmapFailed(Drawable errorDrawable) {
    
                    }
    
                    @Override
                    public void onPrepareLoad(Drawable placeHolderDrawable) {
    
                    }
                });
    
            }
    
            @Override
            public void onError() {
    
            }
        });
    
    0 讨论(0)
提交回复
热议问题