CoronaSDK - 非同期で画像をダウンロードして表示する
CoronaSDK - 非同期で画像をダウンロードして表示する
display.loadRemoteImageを使います
Corona Docs — API | Libraries | display | loadRemoteImage
local halfW, halfH = display.contentCenterX,display.contentCenterY local function load_image_listener(ev) -- 1 if ev.isError then print 'load image error' end end -- load_image_listener local url = 'https://developer.coronalabs.com/demo/hello.png' local imageName = 'tmp.png' display.loadRemoteImage( url, -- 2 'GET', -- 3 load_image_listener, -- 4 imageName, -- 5 system.TemporaryDirectory, -- 6 halfW, -- 7 halfH )
- コールバックメソッド
- ダウンロードするurl
- HTTP Methodを指定
- コールバックメソッドを指定
- 保存する際の名前を指定
- 保存するフォルダを指定
- 画像の中心位置を指定 ここではdisplayの中心
これで画像が非同期でダウンロードされて、画面の中心に画像が表示されます
リストビュー(テーブルビュー)のセル一つ一つに画像を表示するには一手間かかります
詳しくは後ほど記事を書きますが、以下になんとなくの考え方だけ示しておきます
- 画像名をあらかじめinsertRowの時点でparamsにいれておく
- セルの表示タイミングでloadRemoteImageをする
- loadRemoteImageが完了したタイミングでtableView全体の再描画を行う
- それぞれのセルはtableView.view.rows[i]で取得することができる
- 再描画の際にrow.paramsにいれておいた画像名を使用してdisplay.newImageで画像をロードしてセルに表示する