2013年6月27日

【Android】ImageView讀取Assets資料夾圖片(Image From Assets Folder)

各位Android安卓開發者大家安安大家好 ^^

今天小黑人要與大家分享的是"讀取Assets資料夾圖片",原因就是在開發過程中不一定每個圖片資源都會擺放在Resources裡的Drawable資料夾內,可能會有許多不只是圖片檔案或音訊檔案放入Assets資料夾,例如HTML靜態資料或文字檔案或文字字型...等會擺放附加在Assets資料夾內,那Assets資料夾內的檔案要怎麼讀取呢?小黑人今天就以讀取圖片為例子與大家分享簡單快速的方法。

1.讀取Assets資料夾內的檔案只需要在程式裡(.java)撰寫即可。
public class MainActivity extends Activity
{
    private ImageView img;
    private Button btn;
       
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       
       //顯示Assets資料夾圖片的ImageView與進行讀取Assets資料夾圖片的Button
       img = (ImageView) findViewById(R.id.img);
       btn = (Button) findViewById(R.id.assets);

       btn.setOnClickListener(new OnClickListener()
       {
          @Override
          public void onClick(View arg0)
          {
             //帶入Assets資料夾內的圖片路徑(Assets資料夾: android資料夾/black圖片)
             img.setImageBitmap(getBitmapFromAssets("android/black.png"));
          }
       });
    }
       
    //讀取Assets資料夾圖片,型態為Bitmap
    private Bitmap getBitmapFromAssets(String file)
    {
       try 
       { 
          AssetManager am = getAssets(); 
          InputStream is = am.open(file); 
          return bitmap;
       } 
       catch (IOException e) 
       { 
          e.printStackTrace(); 
          return null; 
       } 
    }
}
以上就是讀取並顯示Assets資料夾內圖片的實作程式碼,大家可以參考看看唷 ^^
如有任何問題都可以和小黑人一起交流討論喔~謝謝大家~! XDD

3 則留言:

  1. getBitmapFromAssets return bitmap 不可能吧

    回覆刪除
    回覆
    1. 您好,很抱歉這麼久才回覆您,
      您的疑問是getBitmapFromAssets這個方法吧?
      return bitmap是可以的喔,
      因為getBitmapFromAssets方法形態是bitmap,所以必須回傳bitmap,
      然後藉由AssetManager取得Assets資料夾內的資料,
      前提當然要帶入圖片格式檔案的路徑就可以囉(其他檔案格式就不行,如文字檔...),
      感謝您的留言!

      刪除
  2. InputStream 沒轉成 Bitmap 怎麼 return

    回覆刪除

謝謝大家支持,有任何問題都可以和小黑人一起討論!