在带库存图库的arraylist中打开图像URI

时间:2014-09-08 17:53:22

标签: android android-intent arraylist

我有一个带有URI的arrayList,我想要用gallery打开它。

这就是我现在所拥有的:

public void btnChoosePhotosClick(View v){

    ArrayList<String> selectedItems = imageAdapter.getCheckedItems();
    Toast.makeText(MainActivity.this, "Total photos selected: "+selectedItems.size(), Toast.LENGTH_SHORT).show();
    Log.d(MainActivity.class.getSimpleName(), "Selected Items: " + selectedItems.toString());

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("file://" + selectedItems), "image/*");
    startActivity(intent);
}

但这只是打开空白的画廊,文字“没有缩略图”

GetCheckItems()

public ArrayList<String> getCheckedItems() {
        ArrayList<String> mTempArry = new ArrayList<String>();

        for(int i=0;i<mList.size();i++) {
            if(mSparseBooleanArray.get(i)) {
                mTempArry.add(mList.get(i));
            }
        }

        return mTempArry;
    }

1 个答案:

答案 0 :(得分:1)

而不是字符串,尝试获取Uri

// Instead of Strings, return the Uri of each file.
ArrayList<Uri> selectedItems = imageAdapter.getCheckedItems(); 

有一种叫做Uri.fromFile(file);

的方法

如果你设法传递imageAdapter.getCheckedItems();上的文件Uri,它应该有用。

在你的意图上试试这个:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setType("image/*"); /* All Image Types */
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, selectedItems);
startActivity(intent);