URL-адреса изображений загружаются очень медленно в viewpager2 + круговой индикатор не виденJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 URL-адреса изображений загружаются очень медленно в viewpager2 + круговой индикатор не виден

Сообщение Anonymous »

Я просто пытаюсь получить 5 изображений (все размером менее 50 КБ) с сервера, а затем пытаюсь загрузить их в слайд-шоу viewpager2 в верхней части фрагмента, используя glide и URL-адреса, также изображения приходят и загружаются отлично но после 5-7 секунд задержки в начале. Я не могу понять, почему происходит такая задержка, хотя я использую более быструю сеть. Можете ли вы помочь мне это исправить?
Моя вторая проблема: круговой индикатор также не отображается/не появляется, хотя появляется отлично, когда я пытаюсь загрузить изображения, которые можно рисовать. Но при использовании Glide + URL-адреса круговой индикатор исчезает под макетом viewpager2.
item_photo.xml fragment_home.xml Photo.java — (используемая модель)

Код: Выделить всё

package com.project.localad;

public class Photo {

String img_url;
String img_txt;

public Photo(String img_url, String img_txt) {
this.img_url = img_url;
this.img_txt = img_txt;
}

public Photo() {
}

public String getImg_url() {
return img_url;
}

public void setImg_url(String img_url) {
this.img_url = img_url;
}

public String getImg_txt() {
return img_txt;
}

public void setImg_txt(String img_txt) {
this.img_txt = img_txt;
}
}

PhotoViewPager2Adapter.java

Код: Выделить всё

import java.util.List;

public class PhotoViewPager2Adapter extends RecyclerView.Adapter
 {

private List mListPhoto;
Context context;

public PhotoViewPager2Adapter(List mListPhoto, Context context) {
this.mListPhoto = mListPhoto;
this.context = context;
}

@NonNull
@Override
public PhotoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_photo, parent, false);
return new PhotoViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull PhotoViewHolder holder, int position) {
Glide.with(context).load(mListPhoto.get(position).getImg_url())
.disallowHardwareConfig()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.fitCenter()
.into(holder.img_photo);
holder.img_text.setText(mListPhoto.get(position).getImg_txt());
holder.img_photo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, mListPhoto.get(holder.getLayoutPosition()).getImg_txt(), Toast.LENGTH_SHORT).show();
}
});
}

@Override
public int getItemCount() {
return mListPhoto.size();
}

public class PhotoViewHolder extends RecyclerView.ViewHolder {

private final ImageView img_photo;
private TextView img_text;

public PhotoViewHolder(@NonNull View itemView) {
super(itemView);
img_photo = itemView.findViewById(R.id.img_photo);
img_text = itemView.findViewById(R.id.img_text);
}
}

}

HomeFragment.java

Код: Выделить всё

public class HomeFragment extends Fragment {

private ViewPager2 mViewPager2;
private List
  mListPhoto;
private FragmentHomeBinding binding;
SharedPreferences local_ad_shared_pref;
SharedPreferences.Editor editor;
String pin_code, img_url, img_txt, locationidpk;

private Handler mHandler = new Handler();
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
if (mViewPager2.getCurrentItem() == mListPhoto.size() - 1) {
mViewPager2.setCurrentItem(0);
} else {
mViewPager2.setCurrentItem(mViewPager2.getCurrentItem() + 1);
}
}
};

public HomeFragment() {
// Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(getLayoutInflater());
View view = binding.getRoot();

local_ad_shared_pref = getActivity().getSharedPreferences("local_ad_shared_pref", Context.MODE_PRIVATE);
editor = local_ad_shared_pref.edit();
pin_code = local_ad_shared_pref.getString("pin_code", "");

// View Pager 2 Code
mViewPager2 = view.findViewById(R.id.viewPager2_1);
mListPhoto = getListPhoto(pin_code);
PhotoViewPager2Adapter adapter = new PhotoViewPager2Adapter(mListPhoto, getContext());
mViewPager2.setAdapter(adapter);

CircleIndicator3 indicator = view.findViewById(R.id.circleIndicator3_1);
indicator.setViewPager(mViewPager2);
adapter.registerAdapterDataObserver(indicator.getAdapterDataObserver());
mViewPager2.setOffscreenPageLimit(2);

mViewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
mHandler.removeCallbacks(mRunnable);
mHandler.postDelayed(mRunnable, 3000);
}
});

return view;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

}

private List getListPhoto(String pin_code) {

List list = new ArrayList();

Call call = apicontroller.getInstance()
.getApi()
.fetchSliderImages(pin_code);

call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
if (response.body() != null) {
}

List obj = response.body();
String url0 = "http://74.225.131.20/localshop/localad/localadhomesliderimages/" + obj.get(0).getImg_url();
String url1 = "http://74.225.131.20/localshop/localad/localadhomesliderimages/" + obj.get(1).getImg_url();
String url2 = "http://74.225.131.20/localshop/localad/localadhomesliderimages/" + obj.get(2).getImg_url();
String url3 = "http://74.225.131.20/localshop/localad/localadhomesliderimages/" + obj.get(3).getImg_url();
String url4 = "http://74.225.131.20/localshop/localad/localadhomesliderimages/" + obj.get(4).getImg_url();

list.add(new Photo(url0, obj.get(0).getImg_txt()));
list.add(new Photo(url1, obj.get(1).getImg_txt()));
list.add(new Photo(url2, obj.get(2).getImg_txt()));
list.add(new Photo(url3, obj.get(3).getImg_txt()));
list.add(new Photo(url4, obj.get(4).getImg_txt()));
}
}

@Override
public void onFailure(Call  call, Throwable t) {
Log.d(t.getMessage());
}
});

return list;
}

@Override
public void onPause() {
super.onPause();
mHandler.removeCallbacks(mRunnable);
}

@Override
public void onResume() {
super.onResume();
mHandler.postDelayed(mRunnable, 3000);
}
}
Когда я добавляю изображения в Drawable, они загружаются очень быстро без скольжения, но для скольжения с URL-адресами загрузка в начале занимает некоторое время. Через 5-7 секунд только все фотографии приходят и прекрасно загружаются в слайд-шоу viewpager2. Пожалуйста, помогите, большое спасибо.
Попробовал приведенные ниже параметры в Glide, ничего не получилось.
.disallowHardwareConfig()
. diskCacheStrategy(DiskCacheStrategy.NONE)

Подробнее здесь: https://stackoverflow.com/questions/792 ... not-visibl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • URL-адреса изображений загружаются очень медленно в viewpager2 + круговой индикатор не виден
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Изображения на сайте загружаются медленно. Они загружаются после загрузки страниц
    Anonymous » » в форуме CSS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Изображения на сайте загружаются медленно. Они загружаются после загрузки страниц
    Anonymous » » в форуме Javascript
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Изображения загружаются очень медленно на страницах github
    Anonymous » » в форуме CSS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Данные загружаются очень медленно и один за другим
    Anonymous » » в форуме Javascript
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»