2

I am trying to load this Image : http://api.aircountr.com/3UE2c8CtxmzZfRan0hex5uWGkmzl0BWG.jpg

But using picasso it is not being loaded. I have gone through lot of similar questions but didn't find the solution.

Every time I am getting onError() callback.

if (mDataList.get(position).getImageUrl() != null && !mDataList.get(position).getImageUrl().equals("")) {
            Picasso.with(mContext).load(mDataList.get(position).getImageUrl().trim()).into(iv_invoiceImg, new Callback() {
                @Override
                public void onSuccess() {
                    Log.d("rajcheck", "success");
                }

                @Override
                public void onError() {
                    Log.d("rajcheck", "fail" + ""+mDataList.get(pos).getImageUrl().trim()+"a");
                }
            });
        } else iv_invoiceImg.setImageResource(R.drawable.ic_logo);

UPDATE - Problem Solved The image URL was not containing "http://" that was the problem.

Raj Suvariya
  • 249
  • 1
  • 4
  • 14

3 Answers3

2

Make sure you have gave permission for App to access internet in AndroidManifest.xml

<uses-permission-sdk-23 android:name="android.permission.INTERNET"></uses-permission-sdk-23>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Rajan Kali
  • 12,627
  • 3
  • 25
  • 37
1

First change this condition

if (mDataList.get(position).getImageUrl() != null && !mDataList.get(position).getImageUrl().equals("")) {

to

if(!TextUtils.isEmpty(mDataList.get(position).getImageUrl()))

After seeing your image it is not thumbnail image so it is taking too much time to load.

So in onSuccess() method load your real image using

@Override
        public void onSuccess() {
            Picasso.with(context)
                    .load(mDataList.get(position).getImageUrl()) 
                    .placeholder(R.drawable.ic_logo)
                    .into(iv_invoiceImg);
        }
Piyush
  • 18,895
  • 5
  • 32
  • 63
1

I have tried your url and its working on my side

please check

In manifest.xml

<uses-permission android:name="android.permission.INTERNET"/>

MainActivity

Picasso.with(MainActivity.this)
                .load("http://api.aircountr.com/3UE2c8CtxmzZfRan0hex5uWGkmzl0BWG.jpg")
                .into(imgView, new Callback() {
                    @Override
                    public void onSuccess() {
                        Toast.makeText(SecondActivity.this, "Testing", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError() {

                    }
                });

Outputenter image description here

Sachin
  • 1,307
  • 13
  • 23