Я пытаюсь загрузить изображение с помощью Picasso, но ничего не отображается.
Идея кода состоит в том, чтобы выбрать изображение с устройства. Позже мы загружаем его на сервер и показываем пользователю.
Первые две части реализованы, но проблема в том, что изображение не отображается в соответствующем представлении изображения.
Вот файл макета-
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/b_img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:text="Select image"
/>
<ImageView
android:id="@+id/profileImage"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_below="@+id/b_img"
/>
</LinearLayout>
Класс MainActivity:
public class MainActivity extends AppCompatActivity {
private Button bSelectImg;
private StorageReference storageReference;
private static final int g_img = 1;
private ProgressDialog progressDialog;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {....
storageReference = FirebaseStorage.getInstance().getReference();
progressDialog = new ProgressDialog(this);
bSelectImg = (Button)findViewById(R.id.b_img);
imageView =(ImageView)findViewById(R.id.profileImage);
bSelectImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent , g_img);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == g_img && requestCode != RESULT_OK ) {
Uri uri = data.getData();
progressDialog.setMessage("uploading.....");
progressDialog.show();
StorageReference filepath = storageReference.child("Photos").child(uri.getLastPathSegment());
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Task<Uri> downloadUrl = storageReference.getDownloadUrl();
Log.i("urlimagexcx",""+downloadUrl);
Picasso.with(MainActivity.this)
.load(downloadUrl.toString())
.into(imageView);
Toast.makeText(MainActivity.this,"Upload is don",Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
});
}
}
}
В файле Gradle уровня приложения я использую Picasso версии 2.5.2-
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-auth:16.2.0'
implementation 'com.google.firebase:firebase-database:16.1.0'
implementation 'com.google.firebase:firebase-storage:16.1.0'
// implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.squareup.picasso:picasso:2.5.2'
///
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}