淡定地喝口水 2017-03-15 08:57 采纳率: 0%
浏览 622

android 求一个图片选择器的插件或源码

求推荐一个有拍照,可以选择视频和图片的图片选择器,不要那种要传参数去确定是选择视频还是图片的,要在插件里面可以切换是选择图片还是视频

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 14:25
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android中,没有现成的库提供这样的功能。然而,你可以使用第三方库来实现这个功能。以下是一个简单的示例,展示了如何使用MediaStore API从ContentResolver获取图片和视频。

    首先,你需要安装一个名为MediaBrowserCompat的库(通过Maven或者Gradle):

    <dependency>
        <groupId>com.google.android.media</groupId>
        <artifactId>media-browse-support</artifactId>
        <version>1.0.0-beta2</version>
    </dependency>
    

    然后,你可以创建一个Activity来展示图片和视频的选择:

    import android.content.Intent;
    import android.net.Uri;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 获取图片和视频的Uri
            Uri imageUri = getContentResolver().notifyChange(Uri.parse("content://media/external/images/media"), null);
            Uri videoUri = getContentResolver().notifyChange(Uri.parse("content://media/external/videos/media"), null);
    
            // 创建一个列表来显示这些Uri
            ListView listView = findViewById(R.id.list_view);
            listView.setAdapter(new SimpleAdapter(this, new ArrayList<String>() {{
                add("Image");
                add("Video");
            }}, R.layout.list_item, new String[]{"title"}, new int[]{R.id.text}));
    
            // 当用户点击某个项时,调用onItemClick方法并传递图片或视频的Uri
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent intent;
                    if (position == 0) {
                        // 图片
                        intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://media/external/images/media"));
                    } else {
                        // 视频
                        intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://media/external/videos/media"));
                    }
                    startActivityForResult(intent, 1);
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
    
            if (requestCode == 1 && resultCode == RESULT_OK) {
                Uri selectedImageUri = data.getData();
                Uri selectedVideoUri = data.getData();
    
                // 更新UI以显示选中的内容
                // ...
            }
        }
    }
    

    在这个例子中,我们使用了SimpleAdapter来将图片和视频转换为适配器,并在点击事件中处理选择操作。

    请注意,这只是一个基本的例子,你可能需要根据你的具体需求进行调整。例如,你可能需要添加更多的选项,或者处理更复杂的逻辑。

    评论

报告相同问题?

悬赏问题

  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振