在我的应用程序中,我将tableLayout的内容保存为文件夹中的图像。为了允许用户从保存的图像中打开文件,我创建了一个包含这些文件名称的文本文件。这些文件名稍后将加载到数组(文件)中。用户点击"打开"查看文件名列表并选择要打开的文件名列表。我使用以下代码打开文件。
final String imageInSD = extStorageDirectory+"/myFolder/"+files[which];
//where 'files' is an array of strings and contains the names of files.
//and 'which' is the index of the selected element in the list
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
ImageView ivv=(ImageView) findViewById(R.id.imageView);
ivv.setImageBitmap(bitmap);
当我尝试时没有任何反应,所以我尝试了以下
final String imageInSD = extStorageDirectory+"/myFolder/myFile.PNG";
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
ImageView ivv=(ImageView) findViewById(R.id.imageView);
ivv.setImageBitmap(bitmap);
它显示了名为myFile的图像。 我已经检查过我是否获得了正确的文件名和路径,看起来是正确的。 (当我点击列表中的myFile.PNG并显示我得到的路径" /mnt/sdcard/myFolder/myFile.PNG")。
当我使用第一个代码时,为什么它不起作用?
答案 0 :(得分:1)
字符串连接不是组合路径的好方法。最好使用File constructor:
File directory = new File(extStorageDirectory, "myFolder");
File fileInDirectory = new File(directory, files[which]);
Bitmap bitmap = BitmapFactory.decodeFile(fileInDirectory.getAbsolutePath());