首页 > 解决方案 > 如何添加 CROIMAGEACTIVITY 以加载个人资料照片?

问题描述

如何添加我尝试过多次的裁剪图像活动。我需要裁剪图像,因为个人资料照片没有显示为圆形图像视图的完整图像。我还需要使用圆形图像视图。:) 我正在尝试在 Android-Studio 平台上制作社交媒体应用程序。(而且我想知道如何在每个聊天组上显示未读消息?我无法将已看到的功能添加到群聊中。)谢谢!我的活动结果:

@Override
        public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            if (resultCode == RESULT_OK  ) {
                if (requestCode == IMAGE_PICK_GALLERY_CODE) {
                    image_uri = data.getData();
                    uploadProfileCoverPhoto(image_uri);
                }
                else if (requestCode == IMAGE_PICK_CAMERA_CODE) {
                    uploadProfileCoverPhoto(image_uri);
                }
            }
            super.onActivityResult(requestCode, resultCode, data);
    
        }

和我的 uploadprofilecoverphoto 方法:

    private void uploadProfileCoverPhoto(Uri uri) {
        pd.show();

        String filePathAndName = storagePath+ ""+ profileOrCoverPhoto +"_"+ user.getUid();
        StorageReference storageReference2 = storageReference.child(filePathAndName);
        storageReference2.putFile(uri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
                        while (!uriTask.isSuccessful());
                        Uri downloadUri = uriTask.getResult();

                        if (uriTask.isSuccessful()) {
                            HashMap<String, Object> results = new HashMap<>();
                            results.put(profileOrCoverPhoto, downloadUri.toString());

                            databaseReference.child(user.getUid()).updateChildren(results)
                                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                                        @Override
                                        public void onSuccess(Void aVoid) {
                                            pd.dismiss();
                                            Toast.makeText(getActivity(), "Görsel Güncellendi", Toast.LENGTH_SHORT).show();
                                        }
                                    })
                                    .addOnFailureListener(new OnFailureListener() {
                                        @Override
                                        public void onFailure(@NonNull Exception e) {
                                            pd.dismiss();
                                            Toast.makeText(getActivity(), "Güncelleme Hatası...", Toast.LENGTH_SHORT).show();
                                        }
                                    });
                            if  (profileOrCoverPhoto.equals("gorsel")) {
                                DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Gönderiler");
                                Query query = ref.orderByChild("Id").equalTo(Id);
                                query.addValueEventListener(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                                        for (DataSnapshot ds: snapshot.getChildren()){
                                            String child = ds.getKey();
                                            snapshot.getRef().child(child).child("Profilgorsel").setValue(downloadUri.toString());
                                        }
                                    }

                                    @Override
                                    public void onCancelled(@NonNull DatabaseError error) {

                                    }
                                });
                                ref.addListenerForSingleValueEvent(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                                        for (DataSnapshot ds: snapshot.getChildren()){
                                            String child = ds.getKey();
                                            if (snapshot.child(child).hasChild("Yorumlar")){
                                                String child1 = ""+snapshot.child(child).getKey();
                                                Query child2 = FirebaseDatabase.getInstance().getReference("Gönderiler").child(child1).child("Yorumlar").orderByChild("uId").equalTo(Id);
                                                child2.addValueEventListener(new ValueEventListener() {
                                                    @Override
                                                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                                                        for (DataSnapshot ds: snapshot.getChildren()){
                                                            String child = ds.getKey();
                                                            snapshot.getRef().child(child).child("Profilgorsel").setValue(downloadUri.toString());
                                                        }
                                                    }

                                                    
    }

标签: javafirebase

解决方案


如果没有您想要实现的示例,这个问题就不清楚了——我假设您想在 imageView 中将图像显示为一个圆圈?Glide是一个很棒的库,查看它的一些使用示例。这里这里

此外,最好不要一次问多个不相关的问题。


推荐阅读