glideはロードできない画像を表示します
9120 ワード
に質問
本当はDemo用にglideを書こうと思っていたのですが、前に使ったことがありますが、簡単に使うだけで、深く研究していませんでした.しかし、問題が発生しました.新しいプロジェクトを作成した後、レイアウトにImageViewを追加しました.
次に、glide依存を追加します.最後に、MainActivityに次のコードを書いてテストします.
このようにして、画像がなかなか表示されないので、依存していないのか、追加していないのか、ImageViewのidが正しく引用されていないのかなど考えていましたが、結果は出ませんでした
ぶんせき
これでエラーメッセージが見られるといいと思っていたのですが、ロゴを見ても、私が欲しい情報はありませんでした.後にGlideがlistener()メソッドを提供していることが分かった.そこで私はそれを加えました.
ロゴは次のように印刷されます.
元:Permission denied(missing INTERNET permission?)
そこで私はAndroidManifestに
本当はDemo用にglideを書こうと思っていたのですが、前に使ったことがありますが、簡単に使うだけで、深く研究していませんでした.しかし、問題が発生しました.新しいプロジェクトを作成した後、レイアウトにImageViewを追加しました.
<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が正しく引用されていないのかなど考えていましたが、結果は出ませんでした
ぶんせき
これでエラーメッセージが見られるといいと思っていたのですが、ロゴを見ても、私が欲しい情報はありませんでした.後に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")
.listener(mRequestListener)
.into(imageView);
RequestListener mRequestListener = new RequestListener() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target 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(Object resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
Log.e(TAG, "model:"+model+" isFirstResource: "+isFirstResource);
return false;
}
};
}
ロゴは次のように印刷されます.
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に
を加えて成功しました.