0

GestureImageView を使用して、選択したテーマのカスタム レイヤーを含むマップを表示しています。テーマに応じて、GestureImageView に LayerDrawable をロードしています。

私がそれを使用する方法では、ビットマップは私のメモリを殺し、OutOfMemoryException をスローします。Glide を使用してこれらのビットマップをロードしたいのですが、Glide で LayerDrawable を使用する方法がわかりません。

編集:グライドなしの私の元のコード:

private void loadImageFromStorage(String path, String name)
{

  try {

        File f=new File(path, name);

       BitmapFactory.Options options=new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.RGB_565;
        options.inSampleSize=2;
    //    options.inJustDecodeBounds = true;
        Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f),null,options);

        BitmapFactory.Options options2=new BitmapFactory.Options();
        options2.inPreferredConfig = Bitmap.Config.RGB_565;

        Drawable laag = new BitmapDrawable(b);
        Bitmap back = BitmapFactory.decodeResource(getResources(), R.drawable.bgverkenning, options2);

        Drawable bg = new BitmapDrawable(back);
        Drawable [] lagen = {bg,laag};
        LayerDrawable ld = new LayerDrawable(lagen);

       map.setImageDrawable(ld);

 }
    catch (FileNotFoundException e)
   {
        e.printStackTrace();
    }

}

Glide では、次のような基本的なコードのみを使用しました。

   Glide.with(this).load(ld).into(map);

ただし、Glide は LayerDrawable を認識しないため、何らかのモデルを使用する必要があります。

4

0 に答える 0