com.google.android.gms.common.imagesにはGoogle Play servicesから取得した画像を読み込むクラスが定義されています。
ImageManagerとは
ImageManagerは画像リソースやネットワーク上の画像を読み込み、ImageViewに表示してくれるクラスです。
ネットワーク上の画像は
Uriで指定できます。
しかし、このUriは任意の物ではなく、Google Play Servicesから取得したUriでなくてはいけません。
ImageManagerの使い方
まずはImageManagerをインスタンス化します、インスタンス化するにはImageManager#createを使用します。
public static ImageManager create (Context context) |
Context context |
コンテキスト |
次に、読み込む画像を指定します。
画像の指定にはImageManager#loadImageを使用します、このメソッドには幾つかのオーバーロードがあるので、状況に合わせて使い分けを行いましょう。
ImageManager#loadImage(ImageView imageView, int resId)
画像リソースIDで指定した画像をImageViewにロードします。
public void loadImage (ImageView imageView, int resId) |
ImageView imageView |
読み込んだ画像がセットされるImageViewです。 |
int resId |
ロードする画像リソースID |
ImageManager#loadImage(ImageView imageView, Uri uri)
Uriで指定した画像をImageViewにロードします。
public void loadImage (ImageView imageView, Uri uri) |
ImageView imageView |
読み込んだ画像がセットされるImageViewです。 |
Uri uri |
ロードする画像のUri、他のGooglePlayServices経由で取得したものに限ります。 |
ImageManager#loadImage(ImageView imageView, Uri uri, int defaultResId)
Uriで指定した画像をImageViewにロードします。画像が取得できない場合は、画像リソースIDで指定した画像をImageViewにロードします。
public void loadImage (ImageView imageView, Uri uri, int defaultResId) |
ImageView imageView |
読み込んだ画像がセットされるImageViewです。 |
Uri uri |
ロードする画像のUri、他のGooglePlayServices経由で取得したものに限ります。 |
int defaultResId |
uriで指定した画像がロードできなかった場合に表示されるデフォルト画像リソースIDを指定します。 |
ImageManager#loadImage(ImageManager.OnImageLoadedListener listener, Uri uri)
Uriで指定した画像をロードします。ロードの完了はImageManager.OnImageLoadedListenerを使ってコールバックされます。
public void loadImage (ImageManager.OnImageLoadedListener listener, Uri uri) |
ImageManager.OnImageLoadedListener listener |
画像のロードが完了した時のコールバックインターフェースを指定します |
Uri uri |
ロードする画像のUri、他のGooglePlayServices経由で取得したものに限ります。 |
ImageManagerloadImage(ImageManager.OnImageLoadedListener listener, Uri uri, int defaultResId)
Uriで指定した画像をロードします。ロードの完了はImageManager.OnImageLoadedListenerを使ってコールバックされます。
画像が取得できない場合は、画像リソースIDで指定した画像がロードされます。
public void loadImage (ImageManager.OnImageLoadedListener listener, Uri uri, int defaultResId) |
ImageManager.OnImageLoadedListener listener |
画像のロードが完了した時のコールバックインターフェースを指定します |
Uri uri |
ロードする画像のUri、他のGooglePlayServices経由で取得したものに限ります。 |
int defaultResId |
uriで指定した画像がロードできなかった場合に表示されるデフォルト画像リソースIDを指定します。 |
ImageManager.OnImageLoadedListenerの使い方
ImageManager.OnImageLoadedListenerは画像のロード完了を受け取るコールバックインターフェースです。
public abstract void onImageLoaded (Uri uri, Drawable drawable, boolean isRequestedDrawable) |
Uri uri |
ロードに使用したUri。 |
Drawable drawable |
ロードした画像を表すDrawableインスタンス |
boolean isRequestedDrawable |
URIからロードした場合はTrue、それ以外はFalseになります。 |
Sizeの使い方
Sizeは幅と高さを表すイミュータブルクラスです。
調査中です。
WebImageの使い方
WebImageはWebサーバーに配置されている画像を表すクラスです。
調査中です。
Uriが取得できるGoogle Play servicesとは
調査中です。
サンプルプログラム
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="yona.trygms.ImageManagerActivity">
<Button
android:id="@+id/button_1"
android:text="loadImage (ImageView imageView, int resId)"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_2"
android:text="loadImage (ImageView imageView, Uri uri)"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_3"
android:text="loadImage (ImageView imageView, Uri uri, int defaultResId)"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_4"
android:text="loadImage (ImageManager.OnImageLoadedListener listener, Uri uri)"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_5"
android:text="loadImage (ImageManager.OnImageLoadedListener listener, Uri uri, int defaultResId)"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
package yona.trygms;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.google.android.gms.common.images.ImageManager;
import com.google.android.gms.common.images.Size;
import com.google.android.gms.common.images.WebImage;
public class ImageManagerActivity extends Activity {
private ImageManager mImageManager;
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_manager);
mImageManager = ImageManager.create(this);
mImageView = (ImageView) findViewById(R.id.imageview);
findViewById(R.id.button_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mImageManager.loadImage(mImageView , R.mipmap.ic_launcher);
}
});
findViewById(R.id.button_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://yonayona.biz/yonayona/wp-content/uploads/2017/03/android-1693894_640.jpg");
WebImage webImage = new WebImage(uri);
Size size = new Size(100 , 100);
mImageManager.loadImage(mImageView , webImage.getUrl());
}
});
findViewById(R.id.button_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://yonayona.biz/yonayona/wp-content/uploads/2017/03/android-1693894_640.jpg");
mImageManager.loadImage(mImageView , uri ,R.mipmap.ic_launcher);
}
});
findViewById(R.id.button_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://yonayona.biz/yonayona/wp-content/uploads/2017/03/android-1693894_640.jpg");
mImageManager.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable, boolean b) {
}
} , uri);
}
});
findViewById(R.id.button_5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://yonayona.biz/yonayona/wp-content/uploads/2017/03/android-1693894_640.jpg");
mImageManager.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable, boolean b) {
}
} , uri, R.mipmap.ic_launcher) ;
}
});
Uri uri = new Uri.Builder().build();
WebImage webImage = new WebImage(uri);
Size size = new Size(100,100);
}
}