Androidローカル画像をBitmapストレージに変換


先日、プロジェクトでこのような問題に遭遇しました.表情リストの展示をするには、UIが表情画像をセットしました.jpg形式で、画像を手に入れた後、まずこれらの画像をデータソースとして1つのセットに保存し、アダプタを通じてGridViewリストに表示することを考えています.構想ができて、具体的にどのように実現しますか?
ここでは、単純化のために、プロジェクト内のassetsディレクトリの下にこの一連のピクチャリソースを配置し、これらのピクチャリソースに対して入力ストリーム(InputStream)を取得し、BitmapFactoryというファクトリクラスのdecodeStream()メソッドを使用してBitmapオブジェクトに転送し、forループのセットを通過して、これらのBitmapオブジェクトをリストセットに格納します.具体的な実装方法は、次のとおりです.
package com.zhibeizhen.antusedcar.bbs.tools;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Jarchie on 17/1/6.
 *           
 */

public class EmojyUtils {
    //       
    private static List bitmaps;

    /**
     *      Assets             Bitmap    
     */
    public static List addImageToList(Context context){
        bitmaps = new ArrayList<>();
        for (int i = 1;i < 51;i++){
            Bitmap bitmap = getImageFromAssetsFile(context,i+".jpg");
            bitmaps.add(bitmap);
        }
        return bitmaps;
    }

    /**
     *     Assets       ,    Bitmap  
     * @param fileName
     * @return
     */
    private static Bitmap getImageFromAssetsFile(Context context, String fileName){
        Bitmap image = null;
        AssetManager manager = context.getResources().getAssets();
        try {
            InputStream inputStream = manager.open(fileName);
            image = BitmapFactory.decodeStream(inputStream);
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return image;
    }

}

その後、Adapterでは、対応するImageViewコントロールに画像を設定するだけでいいです.
hodler.iv.setImageBitmap(list.get(position));

これでローカルピクチャのリスト表示機能が完了します.