编辑:
请尝试使用 Activity.this 作为上下文,如果您使用的是片段,则使用 getActivity()
从http://square.github.io/picasso/下载毕加索库
那就试试这个方法
Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
如果您仍然无法加载毕加索,那么他们在高分辨率图像和 https 协议方面存在一些问题,然后尝试
滑翔库
String url = myUrls.get(position);
Glide.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
您可以从这里下载 Glide
https://github.com/bumptech/glide/releases
更新:
由于某种原因,glide 和 picasso 中都没有加载 https 附加链接,在这种情况下,我使用了通用图像加载库..
ImageLoader imageLoader;
ImageView iv;
private ImageLoadingListener animateFirstListener = null;
DisplayImageOptions doption_two = null;
在onCreate里面
imageLoader = ImageLoader.getInstance();
doption_two = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.icon)
.showImageOnFail(R.drawable.icon).cacheInMemory(true)
.cacheOnDisc(true).considerExifParams(true).build();
animateFirstListener = new AnimateFirstDisplayListener();
iv = (ImageView) findViewById(R.id.imageView1);
String url = "http://www.bahrainlocator.gov.bh/blm_data/point_1418646022.jpg";
imageLoader.displayImage(url, iv, doption_two, animateFirstListener);
同时声明一个静态内部类
private static class AnimateFirstDisplayListener extends
SimpleImageLoadingListener {
static final List<String> displayedImages = Collections
.synchronizedList(new LinkedList<String>());
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
displayedImages.add(imageUri);
}
}
}
}
作为辅助类,我添加了
UILApplication.java
public class UILApplication extends Application {
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressWarnings("unused")
@Override
public void onCreate() {
if (Config.DEVELOPER_MODE
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll().penaltyDialog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll().penaltyDeath().build());
}
super.onCreate();
initImageLoader(getApplicationContext());
}
public static void initImageLoader(Context context) {
// This configuration tuning is custom. You can tune every option, you
// may tune some of them,
// or you can create default configuration by
// ImageLoaderConfiguration.createDefault(this);
// method.
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context).threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
}
还有一个constants.java
/**
* @author George Thomas
*/
public final class Constants {
public static class Config {
public static final boolean DEVELOPER_MODE = false;
}
}
确保将清单中的应用程序名称设为 .UILApplication
<application
android:name=".UILApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
你可以在Univerasl Image loader找到jar文件