2012-06-01 77 views
1

我正在爲android開發應用程序,該應用程序顯示了嘉年華活動的列表。我希望應用程序具有每個活動的圖像,以避免用戶在運行應用程序時必須下載它,並改善應用程序的用戶體驗。在Android應用程序包中包含圖像的最佳方式

要做到這一點,我已經將每個活動的圖像添加爲資源,但我不知道這是否是最好的方法。資源有一些限制,我不喜歡,例如,您不能在可繪製文件夾中創建子文件夾來組織圖像,只接受作爲資源名稱的字符是[a-zA-Z0-9_]等等。 ...

有什麼好方法可以做到嗎?或者如果我想避免用戶必須下載圖像,我必須使用資源。

謝謝

回答

1

您可以下載圖像,當用戶第一次加載您的應用程序,然後將其保存到SD卡。

當您的應用程序再次運行時,檢查sdcard中是否有可用的天氣圖像。

如果沒有,那麼下載圖片或者使用SD卡上的圖片。

+0

感謝您的幫助,但客戶端強制應用程序必須脫機運行第一次運行的所有映像。 –

+2

所以你沒有任何其他選擇,你必須將圖像放在可繪製的文件夾中。 – MAC

1

android系統被設計爲在資源文件夾中包含所有可繪製項目(又名圖像)。如果你想圖像與你的應用程序打包(而不是事後下載),他們需要包含在res/drawable

1

它總是更好的有圖像下載,但如果您的要求是應用程序應該有所有的圖片事先然後你可以使用「資產」文件夾,我想對圖片的名稱沒有限制。我試了下面的代碼,它的工作原理如下:

ImageView img = (ImageView)findViewById(R.id.activity_image); 
    try { 
     Drawable d = Drawable.createFromStream(getAssets().open("@ahd ka.png"), null); 
     img.setImageDrawable(d); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

我有意使用一個名稱爲特殊字符的png文件,以顯示程序正在運行。希望這可以幫助。

+0

感謝您的回覆,但最終我會使用資源cotinue,因爲與資源android自動選擇屏幕的最佳形象。但是在未來的版本中,我會考慮使用您的建議,以避免資源限制。 –

相關問題