/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* AndroidWorld Library, Copyright 2011 Bryan Chadwick *
* *
* FILE: ./android/image/FromFile.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.*;
/** Represents an Image from a file. The given file name is used
* to load the image. Resolved path names are cached, so images
* are only loaded once. */
public class FromFile extends RasterImage{
/** Default constructor... must call init after using */
protected FromFile(){
super(1,1);
}
/** Create an Image from the given file name. */
public FromFile(String f){
super(1,1);
try{
java.io.File file = new java.io.File(f);
String abs = file.getCanonicalPath();
if(loaded.containsKey(abs)){
img = loaded.get(abs);
}else{
img = BitmapFactory.decodeFile(abs);
loaded.put(abs, img);
}
this.init(img);
}catch(java.io.IOException e){
throw new RuntimeException("Image File: \""+f+"\" Not Found!");
}
}
/** Store File Images, to avoid multiple loads */
private static Hashtable loaded = new Hashtable();
}