Не получается скачать картинку в память и загрузить в ImageView. Помогите пожалуйста,а то совсем запутался. Каждый раз приложение вылетает , Вот Код:
Image_kyrs = (ImageView) findViewById(R.id.imageView);
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("gs://*******.appspot.com");
StorageReference pathReference = storageRef.child("scoin.png");
final long ONE_MEGABYTE = 1024 * 1024;
gsReference.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Image_kyrs.setImageBitmap(bmp);
Toast toast = Toast.makeText(getApplicationContext(),
"Картинка скачалась!", Toast.LENGTH_SHORT);
toast.show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast toast = Toast.makeText(getApplicationContext(),
"Ошибка!", Toast.LENGTH_SHORT);
toast.show();
}
});
}
Вот такая ошибка:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' on a null object reference
Разрешения вроде прописал:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
В firebase читать без авторизация тоже разрешено:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}}}
Спасибо , я уже сам разобрался,использовал библиотеку Picasso. Там всё проще) Вот код если вдруг кому пригодиться:
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("gs://ВАШ БАКЕТ.appspot.com");
// создаем ссылку на файл по адресу scoin.png
// вызываем getDownloadUrl() и устанавливаем слушатель успеха,
// который срабатывает в случае успеха процесса скачивания
storageRef.child("ВАША КАРТИНКА В FIREBASE.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Picasso.with(Chart.this).load(uri)
.into(ImageView); //ВАШ IMAGEVIEW,без id работать не будет
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast toast = Toast.makeText(getApplicationContext(),
"Ошибка!", Toast.LENGTH_SHORT);
toast.show();
}
});
}
Подключение библиотеки:
compile 'com.squareup.picasso:picasso:2.5.2'
И разрешение на интернет:
<uses-permission android:name="android.permission.INTERNET"/>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вроде получается определить значения полей, но как их суммировать и чтобы выводилось в результат - совсем не получаетсяЗаранее спасибо за помощь