Android:图片库分享到应用

时间:2010-10-30 23:49:22

标签: android image gallery share

我有一个应用程序可以接受图片库中的图片(通过共享菜单)。我的应用程序启动,我这样做:

    Bundle bundle = getIntent().getExtras();
    Object obj = bundle.get("android.intent.extra.STREAM");

在调试时,Eclipse报告对象obj的类型为'Uri @ StringUri'(???),其中的某个地方是字符串'content:// media / external / images / media / 992'。有谁知道obj是什么类型的对象所以我可以对它进行类型转换?什么是字符串? IE,我如何获取图像数据?

1 个答案:

答案 0 :(得分:2)

类型为Uri,是统一资源标识符。

content://media/external/images/media/992是图片的URI。要将其转换为直接文件系统路径,请将URI传递给我在此站点上的其他位置找到的此方法:

// Convert the image URI to the direct file system path of the image file
 public String getRealPathFromURI(Uri contentUri) {

    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery( contentUri,
            proj, // Which columns to return
            null,       // WHERE clause; which rows to return (all rows)
            null,       // WHERE clause selection arguments (none)
            null); // Order-by clause (ascending by name)
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();

    return cursor.getString(column_index);
 }