/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* AndroidWorld Library, Copyright 2011 Bryan Chadwick *
* *
* FILE: ./android/image/FromURL.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 java.net.URL;
import android.graphics.*;
/** Represents an image from a URL. The image is loaded when created.
*
* In order to load images from a URL your Android application must
* have the permission to use the Internet. This permission is set
* in the manifest file as:
* <uses-permission android:name=
* "android.permission.INTERNET" />
*/
public class FromURL extends FromFile{
/** Create an Image from the given URL address */
public FromURL(String url){
try{
if(loaded.containsKey(url)){
this.img = loaded.get(url);
}else{
this.img = BitmapFactory.decodeStream(new URL(url).openStream());
loaded.put(url, this.img);
}
this.init(this.img);
}catch(java.io.IOException e){
throw new RuntimeException("Error Loading URL Image: \""+url+
"\"\n"+e.getMessage());
}
}
/** Store URL Images, to avoid multiple loads, shadows
* FromFile.loaded so that URLs and files come
* from different name-spaces. */
protected static Hashtable loaded = new Hashtable();
}