2015-12-18 62 views
9

我想在android studio中添加我的java項目。我有很多references &在Android studio中添加了我的項目。將圖像添加到Android Studio中的Java項目中?

現在我無法將資產添加到我的項目。所以,請幫我解決這個問題

由於提前

結構

enter image description here

CODE

this.trayIcon = new TrayIcon(ImageIO.read(this.getClass().getResourceAsStream("icon.png"))); 
    this.trayIcon.setImageAutoSize(true); 
    this.trayIcon.setToolTip("Remot Server"); 
    this.trayIcon.setPopupMenu(menu); 

    SystemTray.getSystemTray().add(this.trayIcon); 

錯誤

Exception in thread "main" java.lang.IllegalArgumentException: input == null! 
    at javax.imageio.ImageIO.read(ImageIO.java:1348) 
+0

可能與:HTTP:/ /stackoverflow.com/questions/24661229/getresourceasstream-returning-null-despite-called-file-being-in-same-dir-as-clas –

+0

感謝您的鏈接。它不適用於我 – user3467240

+0

這是什麼TrayIcon無論如何,爲什麼你需要如此複雜的方式與imputStreams? – RexSplode

回答

2

resource目錄位於非Android Studio標準位置。我的猜測是,你還沒有改變你的Gradle文件來嘗試包含該目錄。

最好的辦法是將圖片資源移動到標準位置,以便apk包裝例程知道放置在哪裏。雖然其現有項目的過程是簡單的一個痛:

  1. 創建一個新的空的Android Studio生成應用程序,以便所有的配置是最新的
  2. 拷貝過來的代碼和資源投入到適當的位置。

或者

你可以嘗試從您的Java項目 在你的build.gradle(APP)添加您的資源:

android { 
    .... 
    sourceSets { 
     main { 
      // default is resources.srcDirs = ['src'] 
      resources.srcDirs = ['src/main/java'] 
     } 
    } 
} 

但我還沒有與圖像嘗試過。

更多細節在這裏:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Project-Structure

+0

我試過你的解決方案。但它仍然沒有工作? – user3467240

3

如果您刷新視圖的gradle項目(藍色箭頭)和馬克它,你應該覆蓋的資源文件夾。另一件事是路徑:當使用Class.getResource()時,您的路徑應該以斜槓/開頭,因爲您的映像位於資源文件夾的根目錄中。

看到這裏的acccepted答案:Classpath resource within jar

0

請檢查下面的圖片。
Add Assets

在想要在代碼使用它,則可以使用下面的代碼
//用於活動圖像
      AssetManager assetManager = getAssets();
      InputStream instr = assetManager.open(「close_btn。PNG「);
      BitmapFactory.Options選項=新BitmapFactory.Options();
      mImage = BitmapFactory.decodeStream(INSTR,NULL,選項);

相關問題