java - 如何添加 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());
}
}
}
解决方案
推荐阅读
- android - 在 Android 上的默认应用程序中创建和打开文件
- java - 创建我自己的 SQL 连接池,想知道这是否是不好的做法/有故障?
- python - 在python中使用'in'时如何检查字符串后面是否没有字符
- mysql - MySQL 5.7 32 位的窗口函数
- python-2.7 - 在 Python 中将日期转换为 datetime.datetime?或相反亦然?
- javascript - 如何将 Angular 表单中的数据推送到(数组)队列中
- c# - 使用 AmazonServerlessApplicationRepositoryClient 部署 AWS 无服务器 lambda 应用程序不起作用?
- java - 隐藏空的 webservice 标签(jaxb 生成)
- css - 如何自定义material-ui的select?
- python - 将 RGB 值输入到 bgcolor() 时 Python 乌龟抛出错误