diff --git a/Image/image.android.ts b/Image/image.android.ts index d044fdc46..4a3bedbf8 100644 --- a/Image/image.android.ts +++ b/Image/image.android.ts @@ -37,6 +37,11 @@ export module tk { return (this._nativeImage != null); } + public loadFromBitmap(source: any): boolean { + this._nativeImage = source; + return (this._nativeImage != null); + } + public saveToFile(path: string, format: ImageType, quality?: number): boolean { if (this._nativeImage) { var targetFormat = android.graphics.Bitmap.CompressFormat.PNG; diff --git a/Image/image.d.ts b/Image/image.d.ts index 65db7e37f..2db2ab723 100644 --- a/Image/image.d.ts +++ b/Image/image.d.ts @@ -9,6 +9,7 @@ loadFromResource(name: string): boolean; loadFromFile(path: string): boolean; loadFromData(data: any): boolean; + loadFromBitmap(source: any): boolean; saveToFile(path: string, format: ImageType, quality?: number): boolean; getHeight(): number; diff --git a/Image/image.ios.ts b/Image/image.ios.ts index bc267af8c..baff7a44a 100644 --- a/Image/image.ios.ts +++ b/Image/image.ios.ts @@ -27,6 +27,11 @@ return (this._nativeImage != null); } + public loadFromBitmap(source: any): boolean { + this._nativeImage = source; + return (this._nativeImage != null); + } + public saveToFile(path: string, format: ImageType, quality?: number): boolean { if (null == this._nativeImage) { return false; diff --git a/WebClient/web_client.android.ts b/WebClient/web_client.android.ts index a110e229d..f3bd0ab7b 100644 --- a/WebClient/web_client.android.ts +++ b/WebClient/web_client.android.ts @@ -20,7 +20,6 @@ export module tk { errorCallback(e.toString()); return; } - successCallback(result); } })).get(); @@ -45,9 +44,20 @@ export module tk { public getImage(url: string, successCallback: (result: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) { try { if (successCallback) { - var image = new image_module.tk.ui.Image(); - image.loadFromData(new java.net.URL(url).getContent()); - successCallback(image); + var context = app_module.tk.ui.Application.current.android.context; + com.koushikdutta.ion.Ion.with(context, url).asBitmap().setCallback(new com.koushikdutta.async.future.FutureCallback({ + onCompleted: function (e, result) { + if (e && errorCallback) { + errorCallback(e.toString()); + return; + } + + var image = new image_module.tk.ui.Image(); + image.loadFromBitmap(result); + + successCallback(image); + } + })).get(); } } catch (ex) {