Как получить URL-адрес изображения из SimpleDraweeView от Fresco?

Получите URL-адрес изображения из Fresco SimpleDraweeView.

У меня есть элементы recyclerView с EditText и SimpleDraweeView, также есть кнопка на моей активности. при нажатии кнопки я хочу получить все данные элементов recyclerview в ArrayList.

Вот код, который записывается при нажатии кнопки, и я успешно получил данные editText, кроме URL-адреса SimpleDraweeView.

        ArrayList<ContactUs> getContactUsArrayList = new ArrayList<>();
    for (int i = 0; i < getContactUsArrayList.size(); i++) {
        View view = rvContact.getChildAt(i);
        EditText etName = (EditText) view.findViewById(R.id.etName);
        EditText etMobile = (EditText) view.findViewById(R.id.etMobile);
        SimpleDraweeView sdvImage = (SimpleDraweeView) view.findViewById(R.id.sdvImage);

        String strName = etName.getText().toString();
        String strNumber = etMobile.getText().toString();
        String strImgUrl = ""; //what is the property?


    }

Какое свойство для получения URL-адреса из SimpleDraweeView?


person Arbaz.in    schedule 30.11.2018    source источник
comment
как вы отправляете данные в recyclerview?   -  person Rahul Khurana    schedule 30.11.2018
comment
загружать данные из API и передавать данные в адаптер, затем я пытаюсь получить данные о целых элементах при нажатии кнопки из действия   -  person Arbaz.in    schedule 30.11.2018
comment
вы можете сохранить URL-адрес из API и внутри цикла for использовать то же самое, используя номер индекса. В настоящее время SimpleDraweeView не поддерживает прямой URL.   -  person Rahul Khurana    schedule 30.11.2018
comment
хорошо, это означает, получить конкретные данные об элементе на основе позиции, поправьте меня, если я ошибаюсь.   -  person Arbaz.in    schedule 30.11.2018
comment
да. сохраните URL-адреса в другом списке и используйте его позже   -  person Rahul Khurana    schedule 30.11.2018
comment
хорошо, я постараюсь   -  person Arbaz.in    schedule 30.11.2018
comment
@RahulKhurana Спасибо за идею. я сделал с использованием цикла, и я получил весь объект элемента.   -  person Arbaz.in    schedule 03.12.2018


Ответы (3)


Я понял ваш вопрос, но нет никаких свойств для получения изображения в виде строки, но вы можете добиться этого, как показано ниже. Я предполагаю, что вы правильно установили свое изображение в макете.

Drawable drawable = draweeView.getBackground();
        Bitmap bitmap = draweeView.getDrawingCache();
        Drawable drawable1 = draweeView.getHierarchy().getTopLevelDrawable();

Надеюсь, поможет.

person Mohit Arora    schedule 30.11.2018
comment
Как я вижу выше комментарии, вам нужно сохранить список данных загрузки или список, который вы передали в адаптере, чтобы загрузить данные в представлении корзины, вы можете использовать тот же список, чтобы получить URL-адрес изображения в соответствии с позицией в onBindViewHolder метод. - person Mohit Arora; 30.11.2018

Вы должны проанализировать URL-адрес вашего изображения следующим образом.

SimpleDraweeView simpleDraweeView = 
(SimpleDraweeView)findViewById(R.id.simpleviewid);

Uri imageuri = Uri.parse("YOUR IMAGE URL");
simpleDraweeView.setImageURI(imageuri);

Убедитесь, что fresco инициализирована до setContentView(), а ширина и высота в XML-файле simpleDraweeView не должны быть переносом содержимого. Попробуй это.

Меня устраивает.

person Paramdeep Singh    schedule 30.11.2018

Я получил решение на основе ответов и комментариев

Что я сделал

Заменить этот код

        ArrayList<ContactUs> getContactUsArrayList = new ArrayList<>();
    for (int i = 0; i < getContactUsArrayList.size(); i++) {
        View view = rvContact.getChildAt(i);
        EditText etName = (EditText) view.findViewById(R.id.etName);
        EditText etMobile = (EditText) view.findViewById(R.id.etMobile);
        SimpleDraweeView sdvImage = (SimpleDraweeView) view.findViewById(R.id.sdvImage);

        String strName = etName.getText().toString();
        String strNumber = etMobile.getText().toString();
        String strImgUrl = ""; //what is the property?


    }

С этим кодом

   ArrayList<ContactUs> getContactUsArrayList = new ArrayList<>();
    ContactUs contactUs;
    for (int i = 0; i < getContactUsArrayList.size(); i++) {
        contactUs = getContactUsArrayList.get(i);//Here i got whole object.
        String strName = contactUs.getUserName();
        String strNumber = contactUs.getUserMobile();
        String strImgUrl=contactUs.getImagePath();

    }
person Arbaz.in    schedule 04.12.2018