从gallry获取图像中片段的ImageView设置? [英] Get image from gallry to set in imageview in fragment?

查看:150
本文介绍了从gallry获取图像中片段的ImageView设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从GALLARY获取图像中片段的ImageView设置?在fragment..this的onActivityResult不叫code I片段中写道:

  img_user.setOnClickListener(新View.OnClickListener(){
            @覆盖
        公共无效的onClick(视图v){            意图I =新意图(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(ⅰ,RESULT_LOAD_IMAGE);
        }
    });
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
        super.onActivityResult(要求code,结果code,数据);
        如果(数据!= NULL){
            乌里selectedImage = data.getData();
            的String [] = filePathColumn {MediaStore.Images.Media.DATA};
            光标光标=的getContext()。getContentResolver()查询(selectedImage,
                    filePathColumn,NULL,NULL,NULL);            cursor.moveToFirst();
            INT参数:columnIndex = cursor.getColumnIndex(filePathColumn [0]);
            字符串picturePath = cursor.getString(参数:columnIndex);
            img_user.setImageBitmap(BitmapFactory.de codeFILE(picturePath));
            cursor.close`enter code here`();
        }其他{
            Toast.makeText(getActivity(),再试一次!,Toast.LENGTH_SHORT)
                    。显示();
        }    }


解决方案

您可以通过这种方式做到这一点....你的主要活动

  @覆盖
    保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
       //调用super
       super.onActivityResult(要求code,结果code,数据);
     }

和您的片段里面

 意向书I =新意图(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                // ******** code作物图像
                i.putExtra(裁剪,真);
                i.putExtra(aspectX,100);
                i.putExtra(aspectY,100);
                i.putExtra(outputX,256);
                i.putExtra(outputY,356);                尝试{                    i.putExtra(回归数据,真正的);
                    startActivityForResult(
                            Intent.createChooser(ⅰ,选择图像),0);
                }赶上(ActivityNotFoundException前){
                    ex.printStackTrace();
                }

  @覆盖
    公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
        super.onActivityResult(要求code,结果code,数据);
        如果(要求code == 0安培;&安培;结果code == Activity.RESULT_OK){
            尝试{
                捆绑包= data.getExtras();
                位图位图= bundle.getParcelable(数据);
                img_user.setImageBitmap(位图);
            }赶上(例外五){
                e.printStackTrace();
            }
        }
    }

工作非常适合我。

How to get image from gallary to set in Imageview in fragment ? onActivityResult not called in fragment..this the code i wrote in fragment

img_user.setOnClickListener(new View.OnClickListener() {
            @Override
        public void onClick(View v) {

            Intent i = new Intent(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);


        }
    });


public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


        if (data != null) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContext().getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);

            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            img_user.setImageBitmap(BitmapFactory.decodeFile(picturePath));
            cursor.close`enter code here`();
        } else {
            Toast.makeText(getActivity(), "Try Again!!", Toast.LENGTH_SHORT)
                    .show();
        }

    }

解决方案

You can do this in this way....in your main activity

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       //call super 
       super.onActivityResult(requestCode, resultCode, data);
     }

and inside your fragment

 Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                // ******** code for crop image
                i.putExtra("crop", "true");
                i.putExtra("aspectX", 100);
                i.putExtra("aspectY", 100);
                i.putExtra("outputX", 256);
                i.putExtra("outputY", 356);

                try {

                    i.putExtra("return-data", true);
                    startActivityForResult(
                            Intent.createChooser(i, "Select Picture"), 0);
                }catch (ActivityNotFoundException ex){
                    ex.printStackTrace();
                }

and

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==0 && resultCode == Activity.RESULT_OK){
            try {
                Bundle bundle = data.getExtras();
                Bitmap bitmap = bundle.getParcelable("data");
                img_user.setImageBitmap(bitmap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

Works perfect for me

这篇关于从gallry获取图像中片段的ImageView设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆