在Android Studio中向Java项目添加图像?

9
我正在尝试将我的Java项目添加到Android Studio中。我查看了很多参考资料并将我的项目添加到了Android Studio中。
现在,我无法向我的项目添加资源文件。请帮助我解决这个问题。
谢谢您的帮助。 项目结构 enter image description here 代码
    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)

可能相关:http://stackoverflow.com/questions/24661229/getresourceasstream-returning-null-despite-called-file-being-in-same-dir-as-clas - Morrison Chang
谢谢分享链接。可是对我没用。 - Arulnadhan
这个 TrayIcon 究竟是什么,为什么需要使用输入流这样复杂的方式? - RexSplode
您可以在此处学习TrayIcon https://docs.oracle.com/javase/7/docs/api/java/awt/TrayIcon.html - Arulnadhan
增加了另一种可能的解决方案。 - morpheus05
3个回答

3
如果您在Gradle视图中刷新项目(蓝色箭头),并将其标记为资源文件夹,则应该可以解决问题。另一件事是路径:当使用Class.getResource()时,您的路径应该以斜杠/开头,因为您的图像位于资源文件夹的根目录中。
请参见此处的接受答案:Classpath resource within jar

2

你的资源目录不在Android Studio标准位置。我猜想你没有修改Gradle文件,尝试将该目录包含进去。

最好是将图像资产移动到标准位置,这样apk打包程序就知道把什么放在哪里。虽然对于现有项目来说有点麻烦,但整个过程很简单:

  1. 创建一个新的空的由Android Studio生成的应用程序,以便所有配置都是最新的
  2. 将代码和资源复制到适当的位置。

或者

您可以尝试在build.gradle(app)中添加Java项目的资源:

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

我尝试了你的解决方案,但它仍然没有起作用吗? - Arulnadhan

0
请查看以下图片。
添加资产

当您要在代码中使用它时,可以使用以下代码
// 用于活动中的图像
   AssetManager assetManager = getAssets();
   InputStream instr = assetManager.open("close_btn.png");
   BitmapFactory.Options options = new BitmapFactory.Options();
   mImage = BitmapFactory.decodeStream(instr, null, options);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接