简体   繁体   English

Android - 从 url 加载毕加索

[英]Android - Picasso load from url

I want to try picasso library.我想试试毕加索图书馆。 But I couldn't run below simple code.但是我无法在简单的代码下运行。

I add picasso with gradle: compile 'com.android.support:appcompat-v7:26+' compile 'com.squareup.picasso:picasso:2.5.2'我用 gradle 添加毕加索: compile 'com.android.support:appcompat-v7:26+' compile 'com.squareup.picasso:picasso:2.5.2'

I add internet permission to manifest.我将互联网权限添加到清单中。 .... <uses-permission android:name="android.permission.INTERNET"/> <application....

Sample code:示例代码:

imgView = (ImageView) findViewById(R.id.imgView);
imgView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        String url = "http://i.imgur.com/DvpvklR.png";
        Picasso.with(myActivity).load(url).into(imgView);
        return true;
    }
});

imageview in xml file: xml文件中的图像视图:

<ImageView
    android:layout_width="300dp"
    android:layout_height="400dp"
    android:id="@+id/imgView"
    android:background="@color/colorPrimary"
    />

Loading from drawable folder works.从可绘制文件夹加载工作。 But I cannot see any image loading from url.但是我看不到从 url 加载的任何图像。

EDIT编辑

imgView.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.i("tag", "onClick");
            String url = "http://i.imgur.com/DvpvklR.png";
            Picasso.with(myActivity).setLoggingEnabled(true);
            Picasso.with(myActivity).load(url).into(imgView, new Callback() {
                @Override
                public void onSuccess() {
                    Log.e("tag", "onSuccess");
                }

                @Override
                public void onError() {
                    Log.e("tag", "OnError");
                }
            });
        }
    });

OnClick doesn't work. OnClick 不起作用。 Logcat is below: Logcat如下:

02-22 23:08:32.283 21749-21749/? D/Picasso: Main        created      [R2] Request{http://i.imgur.com/DvpvklR.png}
02-22 23:08:32.283 21749-21777/? D/Picasso: Dispatcher  enqueued     [R2]+0ms 
02-22 23:08:32.283 21749-21779/? D/Picasso: Hunter      executing    [R2]+2ms 
02-22 23:08:32.793 21749-21777/? D/Picasso: Dispatcher  retrying     [R2]+509ms 
02-22 23:08:32.793 21749-21781/? D/Picasso: Hunter      executing    [R2]+510ms 
02-22 23:08:33.303 21749-21777/? D/Picasso: Dispatcher  retrying     [R2]+1015ms 
02-22 23:08:33.303 21749-21782/? D/Picasso: Hunter      executing    [R2]+1018ms 
02-22 23:08:33.313 21749-21777/? D/Picasso: Dispatcher  batched      [R2]+1028ms for error
02-22 23:08:33.523 21749-21749/? D/Picasso: Main        errored      [R2]+1232ms 
02-22 23:08:33.523 21749-21777/? D/Picasso: Dispatcher  delivered    [R2]+1231ms 

EDIT2编辑2

Someone says that try this link.有人说试试这个链接。 http://thumbs2.ebaystatic.com/m/mxQFkSjRujUpASIMht_snyQ/140.jpg http://thumbs2.ebaystatic.com/m/mxQFkSjRujUpASIMht_snyQ/140.jpg

It doesn't work for my samsung device.它不适用于我的三星设备。 Is it related to response time?它与响应时间有关吗?

For error logging enable:对于错误记录启用:

Picasso.with(Context).setLoggingEnabled(true);

And in your code:在你的代码中:

Picasso.with(this).load("https://i.imgur.com/DvpvklR.png").into(imgView);

Another suggestion: in layout xml: Add android:adjustViewBounds="true"另一个建议:在布局 xml:添加android:adjustViewBounds="true"

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

Try to add the onClick listener instead of onTouch listener:尝试添加 onClick 侦听器而不是 onTouch 侦听器:

imgView.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
             String url = "http://i.imgur.com/DvpvklR.png";
             Picasso.with(myActivity).load(url).into(imgView);
         }
     });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM