java - 如何设置图片只上传jpg和png文件?

标签 java c# android xamarin xamarin.android

这是我正在使用的代码,它工作得很好但是我如何只将文件类型设置为 jpg 和 png 并且不允许/不显示图库中的任何其他图像

private void ButtonOnClick(object sender, EventArgs eventArgs) {
    Intent = new Intent();
    Intent.SetType("image/*");
    Intent.SetAction(Intent.ActionGetContent);
    StartActivityForResult(Intent.CreateChooser(Intent, "Select Picture"), PickImageId);
}

#endregion

#region Get the Path of Selected Image
private string GetPathToImage(Uri uri) {
    string path = null;
    // The projection contains the columns we want to return in our query.
    string[] projection = new[] { 
            Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data };
    using (ICursor cursor = ManagedQuery(uri, projection, null, null, null)) {
        if (cursor != null) {
            int columnIndex = cursor.GetColumnIndexOrThrow(Android.Provider.MediaStore.Images.Media.InterfaceConsts.Data);
            cursor.MoveToFirst();
            path = cursor.GetString(columnIndex);
        }
    }
    return path;
}
#endregion

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) {
    // For single image Selection
    if ((requestCode == PickImageId) && (resultCode == Result.Ok) && (data != null)) {
        Uri uri = data.Data;
        _imageView.SetImageURI(uri);
        path = GetPathToImage (uri);
    }
}

最佳答案

我认为所有给定的答案都是错误的。要求是允许 jpg 和 png 文件。这只允许选择给定的文件类型。

首先创建 mimeTypes 数组,包括所有允许的文件类型。
然后把它放在intent extras中。

这是代码。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
String [] mimeTypes = {"image/png", "image/jpg","image/jpeg"};
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_GET_SINGLE_FILE);

关于java - 如何设置图片只上传jpg和png文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114081/

相关文章:

java - 在 Play Framework 2.0 中将文件作为流上传

c# - 让所有字符都在最后一个破折号的右边

android - 如何抑制 Kindle Fire 菜单/操作栏上的搜索图标

android - 是否可以杀死 "android:persistent=true"系统级应用程序?

java - 抛出奇怪的 org.threeten.bp.DateTimeException?

java - Spring-DM OSGI 服务和 @Autowired 的问题

java - 为什么 p :panelGrid not work with ui:repeat?

Java:扫描仪的 next() 在 Scite 和命令提示符中的行为不同

c# - 如何在未经身份验证的情况下在网站上投票一次

c# - 传递可变数量的泛型类型参数