В приложении 2 фрагмента. Переключаюсь между фрагментами через ViewPager. Адаптер:
public class PagerAdapterFragment extends FragmentStatePagerAdapter {
public PagerAdapterFragment(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return Fragment1.newInstance();
case 1:
return Fragment2.newInstance();
default:
return null;
}
}
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View view, Object object) {
if (object instanceof Fragment1) {
view.setTag(0);
}
if (object instanceof Fragment2) {
view.setTag(1);
}
return super.isViewFromObject(view, object);
}
}
Меняю задний фон у фрагментов так:
private void nextFon(ViewPager viewPager) {
viewPager.setPageTransformer(true, new ViewPager.PageTransformer() {
@Override
public void transformPage(View view, float position) {
LayerDrawable background = (LayerDrawable) viewPager.getBackground();
background.getDrawable(0).setAlpha(255);
background.getDrawable(1).setAlpha(255);
int index = (Integer)view.getTag();
Drawable currentDrawableInLayerDrawable;
currentDrawableInLayerDrawable = background.getDrawable(index);
if (position <= -1 || position >= 1) {
currentDrawableInLayerDrawable.setAlpha(0);
} else if (position == 0) {
currentDrawableInLayerDrawable.setAlpha(255);
} else {
currentDrawableInLayerDrawable.setAlpha((int) (255 - Math.abs(position * 255)));
}
}
});
}
В RecyclerView вывожу изображения из ресурсов их порядком 40 шт.
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 0:
posInList = position / 2;
Picasso.with(mContext).load(imageModel.get(posInList)).resize(320, 320)
.into(holder.getItemImageView());
break;
case 2:
break;
}
}
В адаптер передаю путь до изображений , ниже код по добавлению изображений в коллекцию:
public ArrayList<String> getImages() {
for (int i = 0; i <= 41; i++) {
if (ChekFileInFolder.isFileInFolder(i)) {
letter = "a";
} else {
letter = "h";
}
{
fileUri = Uri.parse("android.resource://test/" +
(Context.getAppContext().getResources()
.getIdentifier((letter) + i, "drawable",
"test")));
imag.add(i, fileUri.toString());
}
}
return imag;
}
Изображения все 300 кб. и разрешения 1280/720 - это фон первого фрагмента и второго.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости