/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* AndroidWorld Library, Copyright 2011 Bryan Chadwick *
* *
* FILE: ./android/image/FromResource.java *
* *
* This file is part of AndroidWorld. *
* *
* AndroidWorld is free software: you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation, either version *
* 3 of the License, or (at your option) any later version. *
* *
* AndroidWorld is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with AndroidWorld. If not, see . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package android.image;
import java.util.Hashtable;
import android.graphics.*;
import android.content.res.Resources;
/** Represents an Image from an Android Project Resource. */
public class FromResource extends FromFile{
/** Create an Image from the given Resources and ID. In an Eclipse
* Android project, adding an image to the res/drawable-*
* directories causes resource IDs to be generated in the R
* class. The application's {@link android.content.res.Resources Resources}
* instance can be obtained from the current {@link android.app.Activity Activity}
* using {@link android.app.Activity#getResources}. Image resource IDs are cached
* so that images are only loaded once. */
public FromResource(Resources res, int id){
try{
if(loadedRes.containsKey(id)){
img = loadedRes.get(id);
}else{
img = BitmapFactory.decodeResource(res, id);
loadedRes.put(id, img);
}
this.init(img);
}catch(Exception e){
throw new RuntimeException("Image Resource: \""+id+"\" Not Found!");
}
}
/** Store File Images, to avoid multiple loads */
private static Hashtable loadedRes = new Hashtable();
}