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());
}
}
}