Android 图像未加载毕加索或Glide。。保持显示空白图像
我正在尝试使用毕加索从firebase实时数据库加载图像,但它一直显示空白图像。。。我尝试使用Glide时得到了相同的结果。 我试图使用这个解决方案:[但它对我不起作用 代码如下: ProfileInfoActivityAndroid 图像未加载毕加索或Glide。。保持显示空白图像,android,firebase,firebase-realtime-database,firebase-storage,picasso,Android,Firebase,Firebase Realtime Database,Firebase Storage,Picasso,我正在尝试使用毕加索从firebase实时数据库加载图像,但它一直显示空白图像。。。我尝试使用Glide时得到了相同的结果。 我试图使用这个解决方案:[但它对我不起作用 代码如下: ProfileInfoActivity import android.app.ProgressDialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preferen
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.bumptech.glide.Glide;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import com.squareup.picasso.NetworkPolicy;
import com.squareup.picasso.Picasso;
import com.theartofdev.edmodo.cropper.CropImage;
import java.io.File;
import java.util.Random;
import de.hdodenhof.circleimageview.CircleImageView;
public class ProfileInfoActivity extends AppCompatActivity {
private DatabaseReference mDatabaseReference;
private FirebaseUser mCurrentUser;
private CircleImageView mDisplayImage;
private TextView mName;
private EditText mEditName, mEmail;
private static final int GALLERY_PICK = 1;
private StorageReference mImageStorage;
private ProgressDialog mProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile_info);
mDisplayImage = findViewById(R.id.circle_image);
mName = findViewById(R.id.name);
mEditName = findViewById(R.id.et_name);
mEmail = findViewById(R.id.et_email_address);
mImageStorage = FirebaseStorage.getInstance().getReference();
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
String userID = mCurrentUser.getUid();
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(userID);
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue().toString();
String et_name = dataSnapshot.child("name").getValue().toString();
String et_email_adress = dataSnapshot.child("email").getValue().toString();
String image = dataSnapshot.child("image").getValue().toString();
String thumb_image = dataSnapshot.child("thumb_image").getValue().toString();
mName.setText(name);
mEditName.setText(et_name);
mEmail.setText(et_email_adress);
Picasso.get().load(image).into(mDisplayImage);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
mDisplayImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent();
galleryIntent.setType("image/*");
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(galleryIntent, "SELECT IMAGE"), GALLERY_PICK);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == GALLERY_PICK && resultCode == RESULT_OK ) {
Uri imageUri = data.getData();
CropImage.activity(imageUri)
.setAspectRatio(1, 1)
.start(this);
//Toast.makeText(ProfileInfoActivity.this, imageUri, Toast.LENGTH_SHORT).show();
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
mProgressDialog = new ProgressDialog(ProfileInfoActivity.this);
mProgressDialog.setTitle("Uploading Image...");
mProgressDialog.setMessage("Please wait while we upload and process the image");
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
Uri resultUri = result.getUri();
String current_user_id = mCurrentUser.getUid();
StorageReference filepath = mImageStorage.child("profile_images").child(current_user_id + ".jpg");
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if(task.isSuccessful()){
String download_url = task.getResult().getStorage().getDownloadUrl().toString();
mDatabaseReference.child("image").setValue(download_url).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()) {
mProgressDialog.dismiss();
}
}
});
} else {
Toast.makeText(ProfileInfoActivity.this, "Error in uploading: ", Toast.LENGTH_SHORT).show();
mProgressDialog.dismiss();
}
}
});
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
}
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.net.Uri;
导入android.os.Bundle;
导入android.preference.PreferenceFragment;
导入android.util.TypedValue;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.EditText;
导入android.widget.LinearLayout;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.NonNull;
导入androidx.annotation.Nullable;
导入androidx.appcompat.app.ActionBar;
导入androidx.appcompat.app.appcompat活动;
导入androidx.appcompat.widget.Toolbar;
导入com.bumptech.glide.glide;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
导入com.google.firebase.storage.firebase存储;
导入com.google.firebase.storage.StorageReference;
导入com.google.firebase.storage.UploadTask;
导入com.squareup.picasso.NetworkPolicy;
导入com.squareup.picasso.picasso;
进口com.theartofdev.edmodo.croper.CropImage;
导入java.io.File;
导入java.util.Random;
导入de.hdodenhof.circleimageview.circleimageview;
公共类ProfileInfoActivity扩展了AppCompatActivity{
私有数据库引用mDatabaseReference;
私有FirebaseUser mCurrentUser;
私有CircleImageView mDisplayImage;
私有文本视图mName;
私人编辑文本mEditName,mEmail;
专用静态最终整型库_PICK=1;
私有存储参考图像存储;
private ProgressDialog mProgressDialog;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u profile\u info);
mDisplayImage=findViewById(R.id.circle\u图像);
mName=findviewbyd(R.id.name);
mEditName=findViewById(R.id.et_名称);
mEmail=findViewById(R.id.et\u电子邮件地址);
mImageStorage=FirebaseStorage.getInstance().getReference();
mCurrentUser=FirebaseAuth.getInstance().getCurrentUser();
字符串userID=mCurrentUser.getUid();
mDatabaseReference=FirebaseDatabase.getInstance().getReference().child(“用户”).child(用户ID);
mDatabaseReference.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
字符串名称=dataSnapshot.child(“名称”).getValue().toString();
字符串et_name=dataSnapshot.child(“name”).getValue().toString();
字符串et_email_address=dataSnapshot.child(“电子邮件”).getValue().toString();
字符串image=dataSnapshot.child(“image”).getValue().toString();
字符串thumb_image=dataSnapshot.child(“thumb_image”).getValue().toString();
mName.setText(名称);
mEditName.setText(et_name);
mEmail.setText(电子邮件地址);
Picasso.get().load(image).into(mDisplayImage);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
mDisplayImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent gallerycontent=新Intent();
GalleryContent.setType(“image/*”);
GalleryContent.setAction(Intent.ACTION\u GET\u CONTENT);
startActivityForResult(Intent.createChooser(GalleryContent,“选择图像”),GALLERY\u PICK;
}
});
}
@凌驾
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==GALLERY\u PICK&&resultCode==RESULT\u OK){
Uri imageUri=data.getData();
CropImage.activity(imageUri)
.setAspectRatio(1,1)
.启动(本);
//Toast.makeText(ProfileInfoActivity.this、imageUri、Toast.LENGTH_SHORT.show();
}
if(requestCode==CropImage.CROP\u IMAGE\u ACTIVITY\u REQUEST\u CODE){
CropImage.ActivityResult结果=CropImage.getActivityResult(数据);
if(resultCode==RESULT\u OK){
mProgressDialog=新建ProgressDialog(ProfileInfoActivity.this);
设置标题(“上传图像…”);
setMessage(“请稍候,我们正在上载和处理图像”);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
Uri resultUri=result.getUri();
字符串current_user_id=mCurrentUser.getUid();
StorageReference filepath=mImageStorage.child(“profile_images”).child(当前_用户_id+“.jpg”);
filepath.putFile(resultUri).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
String download_url=task.getResult().getStorage().getDownloadUrl().toString();
mDatabaseReference.child(“image”).setValue(下载url).addOnCompleteListener(新的OnCompleteListener
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ProfileInfoActivity" />
<activity android:name=".ResetPasswordActivity" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity android:name=".login.LoginActivity" />
<activity android:name=".login.SignupActivity" />
<activity
android:name=".FullscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SettingsActivity"
android:label="@string/setting"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"/> <!-- optional (needed if default theme has no action bar) -->
</application>
filepath.putFile(resultUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
filepath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String download_url = uri.toString();
mDatabaseReference.child("image").setValue(download_url).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
mProgressDialog.dismiss();
Toast.makeText(ProfileInfoActivity.this,"Success Uploading",Toast.LENGTH_SHORT).show();
}
});
}
});
}
});