Android 如何打开图像/视频/音频?

Android 如何打开图像/视频/音频?,android,Android,在我的应用程序中有一个按钮,按下该按钮时,应该可以打开图片库、视频库或音频播放器 请告诉我如何构造执行该操作的意图?只需单击任何按钮,通过文件路径,然后根据该文件将此方法应用于任何类型的文件 File file = new File(filePath); MimeTypeMap map = MimeTypeMap.getSingleton(); String ext = MimeTypeMap.getFileExtensionFromUrl(file.getName()

在我的应用程序中有一个按钮,按下该按钮时,应该可以打开图片库、视频库或音频播放器


请告诉我如何构造执行该操作的意图?

只需单击任何按钮,通过文件路径,然后根据该文件将此方法应用于任何类型的文件

 File file = new File(filePath); 
    MimeTypeMap map = MimeTypeMap.getSingleton();
       String ext = MimeTypeMap.getFileExtensionFromUrl(file.getName());
         String type = map.getMimeTypeFromExtension(ext);
        if (type == null)
        type = "*/*";

    Uri uri = Uri.parse("www.google.com");
    Intent type_intent = new Intent(Intent.ACTION_VIEW, uri);
    Uri data = Uri.fromFile(file);
    type_intent.setDataAndType(data, type);
    startActivity(type_intent);
用于图像

private void getallimages(File dir)
    {

    String[] STAR = { "*" };
    controller.images.clear();

    final String orderBy = MediaStore.Images.Media.DEFAULT_SORT_ORDER;
    Cursor imagecursor = cntx.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, STAR, null, null, orderBy);
    int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
    int count = imagecursor.getCount();
    for (int i = 0; i < count; i++) {
        imagecursor.moveToPosition(i);
        int id = imagecursor.getInt(image_column_index);
        ImageItem imageItem = new ImageItem();//this is my wrapper class 
        if(new File(imagecursor.getString(imagecursor.getColumnIndex(MediaStore.Images.Media.DATA))).length()<=10485760)
        {
            imageItem.filePath = imagecursor.getString(imagecursor.getColumnIndex(MediaStore.Images.Media.DATA));

        imageItem.id = id;
        imageItem.selection = false; //newly added item will be selected by default this it do for check box unselect u dont need to fill this 
        controller.images.add(imageItem);//this i just add all info in wrapper class    

        }
还有视频

private void getallvideo()
    {
         String[] STAR = { "*" };

        controller.videoWrapper.clear();
        Cursor videoCursor = cntx.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, STAR, null, null, null);

        if (videoCursor != null) 
        {
            if (videoCursor.moveToFirst()) 
            {
                do 
                {


                    String path = videoCursor.getString(videoCursor.getColumnIndex(MediaStore.Images.Media.DATA));

                               controller.videoWrapper.add(new MediaWrapper(new File(path).getName(), path, "Video",false,color_string));




                 }while (videoCursor.moveToNext());

            }
         }
    }

我会这样认识:
单击按钮时,弹出一个包含3个按钮的自定义对话框

  • 图片库按钮
  • 视频库按钮
  • 音频播放器按钮

  • 根据用户选择,您启动与操作对应的意图。

    您是否需要或(其中任何一个)或和(所有)?@Atul O Holic感谢Atul和所有这些,以便用户可以选择。@LisaAnne根据您的问题,我还建议您打开弹出对话框,Alertdialog或custom dialog,然后从中执行您的操作。@PiYusHGuPtA我已经向她提出了这个建议。@Lazynija我在第一条评论中提出了另一个建议。谢谢你Bhanu,但我不需要打开一个文件,我需要用户查看Gallery和MediaPlayer应用程序,以便他可以选择使用什么,音频、视频或图片。现在查看我的bigg bigg ans:)它将为您提供所需的一切@LisaAnne:)谢谢懒惰的忍者,但不幸的是,我只需要一个按钮。LISA@LisaAnne是的,只有一个按钮,但您必须添加一个弹出对话框。
    private void getallvideo()
        {
             String[] STAR = { "*" };
    
            controller.videoWrapper.clear();
            Cursor videoCursor = cntx.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, STAR, null, null, null);
    
            if (videoCursor != null) 
            {
                if (videoCursor.moveToFirst()) 
                {
                    do 
                    {
    
    
                        String path = videoCursor.getString(videoCursor.getColumnIndex(MediaStore.Images.Media.DATA));
    
                                   controller.videoWrapper.add(new MediaWrapper(new File(path).getName(), path, "Video",false,color_string));
    
    
    
    
                     }while (videoCursor.moveToNext());
    
                }
             }
        }