Android将图像添加到应用以供日后使用

时间:2015-02-27 05:46:16

标签: android android-studio

我的项目(在AndroidStudio中)需要一个稍后会加载进行处理的图像。这将是一个我知道的菜鸟问题......

我的计算机上有图像文件(myimage.bmp),我需要将它添加到我的项目中,这样当我在设备上测试我的应用程序时,图像文件将被加载到设备中,我可以从代码中访问它。

我该怎么办? 我在哪里放置文件以及如何访问它的路径?

到目前为止,我尝试将其放在drawable文件夹中,我甚至创建了一个名为raw的新文件夹并将其放在那里,但我似乎无法从我的应用中找到它。

要找到它,我试试这段代码:

String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path,"myimage.bmp"); 

我也尝试过:

File file = new File(path,"/myProjectName/myimage.bmp"); 

仍然没有。 我也在我的设备上启动了文件导航器,转到了storage/sdcard0/ Environment.getExternalStorageDirectory().getAbsolutePath(),我查找了一个名为my project的文件夹,但没有任何类似的文件夹。

很明显我做错了什么,而且我对如何在谷歌搜索我想要的东西没有想法,所以请你好好告诉我:在什么文件夹中我必须将我的图像放在项目,我如何获得它,以便将其分配给文件?

修改

这是我检查文件的代码:

String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path,"/MyProjectName/myimage.bmp"); 
        if (file.exists()) {
            Log.e("FILE Stuff:",path + "/MyProjectName/myimage.bmp");
            Log.e("FILE Stuff:","File exists");
        }
        else
        {
            Log.e("FILE Stuff:",path + "/MyProjectName/myimage.bmp");
            Log.e("FILE Stuff:","File does not exist");
        }
       Bitmap objectbmp = BitmapFactory.decodeFile(path + "/MyProjectName/myimage.bmp");

正如我所提到的,文件不存在......即使我将文件放在C:\MyAndroidTests\MyProject\app\src\res\raw\文件夹中

2 个答案:

答案 0 :(得分:0)

在这种情况下,您应该将文件添加到/ res / raw文件夹。然后使用资源ID(R.raw.xxx)获取此文件并将其复制到外部存储。 例如,我有一个sqlite表,并希望在第一次启动此APP时将其从我的APP复制到外部存储。 所以,

InputStream is = context.getResources().openRawResource(R.raw.table);

            OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = is.read(buffer)) > 0) {
                os.write(buffer, 0, length);
            }

            os.flush();
            os.close();
            is.close();

这样做。 DB_PATH& DB_NAME是数据库路径和数据库文件名的两个字符串。 不要忘记将这些代码包装在try ... catch中。

答案 1 :(得分:0)

您可以尝试将图片放入资源文件夹并以此方式访问

File file = new File(file:///android_asset/image1.png);

修改 从可绘制文件夹中获取图像的路径

 Uri otherPath = Uri.parse("android.resource://{your_app_package_name}/drawable/icon");

    String path = path.toString();
 File file = new File(path);