0
int image[] = {R.drawable.d002_p001,R.drawable.d002_p002,R.drawable.d002_p003,
                   R.drawable.d002_p004,R.drawable.d002_p005,R.drawable.d002_p006};
showPhoto(imCurrentPhotoIndex);


    protected void onSaveInstanceState(Bundle outState) {
        outState.putInt("photo_index", imCurrentPhotoIndex);
        super.onSaveInstanceState(outState);
    }
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        imCurrentPhotoIndex = savedInstanceState.getInt("photo_index");
        showPhoto(imCurrentPhotoIndex);
        super.onRestoreInstanceState(savedInstanceState);
    }

    private void showPhoto(int photoIndex) {
        ImageView imageView = (ImageView) findViewById(R.id.image_view);
        // imageView.setImageResource(imPhotoIds[photoIndex]);
        imageView.setImageResource(imPhotoIds[photoIndex]);

    }

上面的代码用于从 drawable 文件夹中读取和显示图像。我想从存储卡中的文件夹中读取图像;我该做什么?

4

3 回答 3

1

您应该转到此链接http://mobile.dzone.com/news/displaying-images-sd-card您可以通过使用内容解析器或使用 getExternalStorageDirectory 获取绝对路径来执行此操作

于 2013-08-20T11:32:07.747 回答
0

试试这个代码。

File extStore = Environment.getExternalStorageDirectory();

然后给出文件夹名称和文件名。

/audios/ringtone1.extension

于 2013-08-20T11:27:09.440 回答
0

您需要首先获取图像的路径。假设您的文件夹中只有图像。

    ArrayList<String> thumb = new ArrayList<String>();
    File[] listFile; 

    public void getFromSdcard()
    {
    File file= new File(android.os.Environment.getExternalStorageDirectory(),"foldername");

        if (file.isDirectory())
        { 
            listFile = file.listFiles();

            for (int i = 0; i < listFile.length; i++)
            {
               thumb.add(listFile[i].getAbsolutePath());

            }
        }
}

现在您可以在arraylist thumb 中使用图像的路径。

记得在manifest中添加读权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

将其设置为图像视图

 ImageView image=(ImageView)vi.findViewById(R.id.image_view);
 Bitmap b = BitmapFactory.decodeFile(thumb.get(photoIndex).toString); // get the file and decode
 image.setImageBitmap(b);
于 2013-08-20T11:31:17.163 回答