Не удается извлечь изображения из загружаемого URL-адреса хранилища Firebase. Как я могу получить и установить imageview в holder?

#java #android #android-recyclerview #firebase-storage

#java #Android #android-recyclerview #firebase-storage

Вопрос:

Adapter.java класс здесь:

 public class LesionAdapter extends BaseAdapter {

ArrayList<usersickness> lesionList;
Context context;
LayoutInflater vi;

public LesionAdapter(Context context, ArrayList<usersickness> lesions) { //, LayoutInflater layoutInflater
    this.lesionList = lesions;
    this.context = context;
    this.vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return lesionList.size();
}

@Override
public Object getItem(int i) {
    return lesionList.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) { //convertview -> view
    ViewHolder holder;

    if(convertView == null){
        holder = new ViewHolder();

        convertView = vi.inflate(R.layout.lesion_item, null);
        holder.img = convertView.findViewById(R.id.les_img);
        holder.name = convertView.findViewById(R.id.les_name);
        holder.date = convertView.findViewById(R.id.les_date);
        holder.area = convertView.findViewById(R.id.les_area);
        holder.number = convertView.findViewById(R.id.les_number);
        holder.checkBox = convertView.findViewById(R.id.les_checkBox);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }


    String path = lesionList.get(i).getPhoto_id();
    Glide.with(context).load(path).into(holder.img);
    Picasso.get().load(path).resize(140,140).centerCrop().into(holder.img);
    holder.img.setImageResource(R.drawable.rosacea1);
    holder.name.setText(lesionList.get(i).getClassificationNameRatio());
    holder.date.setText(lesionList.get(i).getDate());
    holder.area.setText(lesionList.get(i).getSegLesionArea());
    holder.number.setText(lesionList.get(i).getSegLesionNumber());
    holder.checkBox.setChecked(lesionList.get(i).getCheckBox());

    holder.checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            boolean isSelected = ((CheckBox)v).isChecked();
            lesionList.get(i).setCheckBox(isSelected);
        }
    });

    return convertView;

}

static class ViewHolder {
    public ImageView img;
    public TextView name;
    public TextView date;
    public TextView area;
    public TextView number;
    public CheckBox checkBox;
}

public ArrayList<usersickness> getSelectLesionList(){
    ArrayList<usersickness> list = new ArrayList<>();
    for(int i=0;i<lesionList.size();i  ){
        if(lesionList.get(i).getCheckBox())
            list.add(lesionList.get(i));
    }
    return list;
}
  

зависимости build.gradle находятся здесь:

 dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-auth:19.3.2'
implementation 'com.google.firebase:firebase-database:19.4.0'
implementation 'com.google.firebase:firebase-storage:19.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.jjoe64:graphview:4.2.2'
implementation files('libs/activation.jar')
implementation files('libs/additional.jar')
implementation files('libs/mail.jar')
implementation "androidx.core:core-ktx: "
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

implementation 'com.squareup.picasso:picasso:2.71828'

implementation 'com.github.bumptech.glide:glide:4.11.0'

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
  

Я извлекаю из хранилища Firebase URL-адреса загружаемых изображений. URL-адрес выглядит в следующем формате:https://firebasestorage.googleapis.com/v0/b /[ProjectID].appspot.com/o /[имя_фоЛьда]/[Имя файла]

Затем я помещаю URL-путь в модули Picasso и Glide, но они не работают. Код, который раньше работал в виде listview, теперь ничего не перечисляет. Страница пуста, а другие текстовые представления не видны. Теперь видна только кнопка.

Мне нужна помощь, поскольку я не могу понять, в чем проблема.

Можете ли вы, пожалуйста, помочь мне это исправить? Или как еще я могу получить изображения из хранилища и показать их в imageview?

Комментарии:

1. Я попробовал модули Picasso и Glide отдельно. Я удалил строки комментариев, помещая их здесь.

2. Если вы можете взять URL-адрес и загрузить его в браузере, значит, вы делаете что-то не так в своем коде, который загружает изображение.

3. Да, я могу получить доступ к URL-адресу из браузера. Требуется другое разрешение доступа? Есть ли конфликт в приложении? Я не смог его найти, у вас есть какие-либо идеи?

4. URL-адреса для загрузки не требуют никаких разрешений.