• android获得图片


    首先是相册图片的获取:

    private final String IMAGE_TYPE = "image/*";
    
    private final int IMAGE_CODE = 0;   //这里的IMAGE_CODE是自己任意定义的
    
     
    
    //使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片
    
     
    
    Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);
    
    getAlbum.setType(IMAGE_TYPE);
    
    startActivityForResult(getAlbum, IMAGE_CODE);
    
     
    
    //重写onActivityResult以获得你需要的信息
    
     
    
    @Override
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
    
        if (resultCode != RESULT_OK) {        //此处的 RESULT_OK 是系统自定义得一个常量
    
            Log.e(TAG,"ActivityResult resultCode error");
    
            return;
    
        }
    
     
    
        Bitmap bm = null;
    
     
    
        //外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
    
        ContentResolver resolver = getContentResolver();
    
     
    
        //此处的用于判断接收的Activity是不是你想要的那个
    
        if (requestCode == IMAGE_CODE) {
    
            try {
    
                Uri originalUri = data.getData();        //获得图片的uri 
    
     
    
                bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);        //显得到bitmap图片
    
     
    
    这里开始的第二部分,获取图片的路径:
    
     
    
                String[] proj = {MediaStore.Images.Media.DATA};
    
     
    
                //好像是android多媒体数据库的封装接口,具体的看Android文档
    
                Cursor cursor = managedQuery(originalUri, proj, null, null, null); 
    
                //按我个人理解 这个是获得用户选择的图片的索引值
    
                int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    
                //将光标移至开头 ,这个很重要,不小心很容易引起越界
    
                cursor.moveToFirst();
    
                //最后根据索引值获取图片路径
    
                String path = cursor.getString(column_index);
    
            }catch (IOException e) {
    
                Log.e(TAG,e.toString()); 
    
            }
    
        }
    
     
    
    }
    
     

    从网上论坛看来的方法,备用

  • 相关阅读:
    mysql
    selenium
    解决servlet响应乱码问题
    flask后端的跨域问题
    python中并发----线程的启动和停止
    react-native 自定义组件规范
    react-native 高阶组件笔记
    class-dump安装及使用
    jekyll的安装
    取巧的json转model声明代码的工具
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5264099.html
Copyright © 2020-2023  润新知