Невозможно показать изображения из хранилища Firebase

Я использую новое хранилище Firebase и загружаю изображение, а затем получаю URL-адрес загрузки. После преобразования URL-адреса загрузки в строку я использую его для отображения в своей деятельности, но он просто показывает URL-адрес загрузки. Я использую приведенный ниже код для загрузки изображения и получения URL-адреса для загрузки:

    dialogBuilder.setTitle("Add Shop");
    dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //do something with edt.getText().toString();

            Uri image_uri = getImageUri();
            enteredShopName = shopName.getText().toString();
            enteredShopDescription = shopDescription.getText().toString();

            FirebaseStorage storage = FirebaseStorage.getInstance();
            // Create a storage reference from our app
            StorageReference storageRef = storage.getReferenceFromUrl("gs://myapp.com");
            StorageReference imagesRef = storageRef.child("shop_images");
            StorageReference selectimage_ref = imagesRef.child(image_uri.getLastPathSegment());

            // upload file to firebase storage
            selectimage_ref.putFile(image_uri).
            addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Uri download_url = taskSnapshot.getDownloadUrl();
                    String string_download_url = download_url.toString();
                    Shop shop = new Shop(enteredShopName, enteredShopDescription,string_download_url);
                    listRef.push().setValue(shop, new DatabaseReference.CompletionListener() {
                        @Override
                        public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                            if (databaseError != null) {
                                Log.e(TAG, "Failed to write message", databaseError.toException());
                            } else {
                                Toast.makeText(MainActivity.this, "Shop added successfully", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

                }
            });

После получения URL-адреса я устанавливаю его, как показано, чтобы показать изображение:

        public void setImg_url(String string_download_url){
        TextView field = (TextView) mView.findViewById(R.id.tv_shopImg);
        field.setText(string_download_url);
    }

person Mehul Kanzariya    schedule 30.05.2016    source источник


Ответы (1)


Чтобы показывать изображения, вы должны использовать ImageView.

Вы можете использовать библиотеку Picasso для отображения изображений в ImageView. Вам просто нужно передать url, uri или ресурс в Picasso с просмотром изображения.

нравиться

Picasso.with(this).load(/* url of image */).into(/*your imageview id*/);

Чтобы использовать Picasso, вам нужно добавить в Gradle следующее:

compile 'com.squareup.picasso:picasso:2.5.2'

См. Этот ответ.

person Amitai Fensterheim    schedule 30.05.2016
comment
Когда я пишу строку выше, я не могу установить контекст. Я использую Picasso в ViewHolder RecyclerView - person Mehul Kanzariya; 30.05.2016
comment
Попробуйте отправить Activity в качестве параметра - person Amitai Fensterheim; 30.05.2016
comment
Пробовал, он говорит, что на него нельзя ссылаться из статического контекста - person Mehul Kanzariya; 30.05.2016
comment
Не могли бы вы добавить к своему вопросу код ViewHolder, где вы использовали и реализовали setImg_url. Я пытаюсь разобраться в структуре приложения ... - person Amitai Fensterheim; 30.05.2016
comment
Получил, использовал view.getContext () - person Mehul Kanzariya; 30.05.2016