/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 <http://www.gnu.org/licenses/>. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 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<String,Bitmap> loaded = new Hashtable<String,Bitmap>(); }