[英]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.