我使用GestureImageView显示带有所选主题的自定义图层的地图。根据主题,我在GestureImageView中加载了一个LayerDrawable。
我使用它的方式,Bitmaps正在杀死我的内存,并将抛出OutOfMemoryException。我想使用Glide加载这些位图,但我无法弄清楚如何在Glide中使用LayerDrawable。
编辑: 我的原始代码没有Glide:
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。