glide 显示 加载不出来 图片

来源:互联网 发布:ubuntu 安装双系统 编辑:程序博客网 时间:2024/04/28 05:52

问题

本来想写个Demo用下glide,虽说之前用过,但是只是简单地使用,并没有深入研究。但是,却遇到问题:
新建好项目之后,在布局中加了ImageView.

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.kite.imageloader.MainActivity">    <ImageView        android:id="@+id/image"        android:src="@mipmap/ic_launcher"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>

然后,添加glide依赖:
最后,在MainActivity中写下如下代码,以便测试:

public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    ImageView imageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageView = (ImageView) findViewById(R.id.image);        Toast.makeText(this, "kkk", Toast.LENGTH_SHORT).show();        Glide.with(this).load("http://7xi8d6.com1.z0.glb.clouddn.com/16124047_121657248344062_4191645221970247680_n.jpg")                .into(imageView);    }

这样做完之后,图片怎么也显示不出来,我之前想是不是依赖没添加对,ImageView的id是不是没有正确引用等等,但是没有结果

分析

想着如此能看到报错信息就好了,可是查看log,也没有我想要的信息。
后来发现Glide为我们提供了listener()方法。于是我就加上了它。

package com.kite.imageloader;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.ImageView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.bumptech.glide.load.resource.drawable.GlideDrawable;import com.bumptech.glide.request.RequestListener;import com.bumptech.glide.request.target.Target;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    ImageView imageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageView = (ImageView) findViewById(R.id.image);        Toast.makeText(this, "kkk", Toast.LENGTH_SHORT).show();        Glide.with(this).load("http://7xi8d6.com1.z0.glb.clouddn.com/16124047_121657248344062_4191645221970247680_n.jpg")                .into(imageView);    }    RequestListener<String, GlideDrawable> listener = new RequestListener<String, GlideDrawable>() {        @Override        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {            Log.d(TAG, "onException: " + e.toString()+"  model:"+model+" isFirstResource: "+isFirstResource);            imageView.setImageResource(R.mipmap.ic_launcher);            return false;        }        @Override        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {            Log.e(TAG, "isFromMemoryCache:"+isFromMemoryCache+"  model:"+model+" isFirstResource: "+isFirstResource);            return false;        }    };}

打印出log如下:

D/MainActivity: onException: java.lang.SecurityException: Permission denied (missing INTERNET permission?)  model:http://7xi8d6.com1.z0.glb.clouddn.com/16124047_121657248344062_4191645221970247680_n.jpg isFirstResource: true

原来:Permission denied (missing INTERNET permission?)

于是我在AndroidManifest加上
<uses-permission android:name="android.permission.INTERNET"/>
于是成功了。

0 3
原创粉丝点击