0
votes

Prenez l'image de la galerie et définissez sur CircirImageView

Donc je suis à l'intérieur d'un fragment et je veux prendre une image de la galerie et régler sur CircirImageView. Je commence une intention et choisissez correctement l'image, mais sur l'onactivitéResult, l'image n'est pas réglée. L'image SRC par défaut reste. Ceci est le code

fragment_layout p>

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        LayoutInflater lf = getActivity().getLayoutInflater();
        view =  lf.inflate(R.layout.fragment_profile,container,false);
        mContext = getActivity();

        mProfilePhoto = (CircleImageView) view.findViewById(R.id.profile_photo);
        view.findViewById(R.id.profile_photo).setOnClickListener(this);

        return view;

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.profile_photo:
                Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                try {
                    i.putExtra("return-data", true);
                    startActivityForResult(
                            Intent.createChooser(i, "Select Picture"), 0);
                }catch (ActivityNotFoundException ex){
                    ex.printStackTrace();
                }
                break;
        }

    }

    @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("return-data");
                mProfilePhoto.setImageBitmap(bitmap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }


0 commentaires

3 Réponses :


2
votes

Utiliser glisse code> avec imageview code> au lieu de CIRCIRImageView CODE> et définissez votre bitmap code> comme un cercle comme suit

ÉTAPE 1. FORT> Ajoutez sur la dépendance P>

Bitmap photo = (Bitmap) data.getExtras().get("return-data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
Glide.with(this)
        .load(stream.toByteArray())
        .apply(RequestOptions.circleCropTransform())
        .into(imageView);


1 commentaires

Impossible de résoudre la méthode Asbitmap () et CircleRansform ()



1
votes

On dirait que j'ai connu ce problème. Et j'utilise votre bibliothèque pour tous mes projets.

if (requestCode != RESULT_CANCELED){
            if (requestCode == GALLERY_REQUEST){
                Uri path = data.getData();
                try {
                    photo = MediaStore.Images.Media.getBitmap(getContext().getContentResolver(), path);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                mProfilePhoto.setImageBitmap(photo);}}


3 commentaires

Qu'est-ce que la photo utilisée?


Désolé, c'est de ma faute. Je devrais habituer à SetImageBitmap (photo) au lieu de SetImageuri (chemin). J'ai mis à jour ma réponse.


İf Ma réponse travaille pour vous pourriez-vous accepter ma réponse?



1
votes


0 commentaires