Прежде всего, извините за мой английский.SwipeView слишком медленно при смене фона для каждого фрагмента
Я пытаюсь добавить Swipe View в FragmentActivity. Я следовал за android doc от http://developer.android.com/training/implementing-navigation/lateral.html среди других.
У меня есть FragmentActivity, FragmentPagerAdapter (я также попробовал FragmentStatePagerAdapter), фрагмент и другие элементы, необходимые для документа (xml и т. Д.).
Я просто разрабатываю простую базу для приложения, которое скоро будет распространено, но к моменту, когда я просто хотел показать тот же макет с разным фоном для каждой позиции этого Swipe View.
В фрагменте я следующее (The FragmentPagerAdapter разделяет позицию с помощью Bundle):
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(
R.layout.fragment_initial_promo_swipe1, container, false);
int position = this.getArguments().getInt("position", 0);
switch(position){
case 0:
rootView.setBackgroundResource(R.drawable.intro1_screen);
break;
case 1:
rootView.setBackgroundResource(R.drawable.intro2_screen);;
break;
case 2:
rootView.setBackgroundResource(R.drawable.intro3_screen);
break;
default:
rootView.setBackgroundResource(R.drawable.intro1_screen);
}
return rootView;
Дело в том, что простое изменение фона вида в фрагмента делает салфетки экстремально медленно (в реальном устройстве). В журнале отображается сообщение:
«Пропущено 86 кадров! Приложение может делать слишком много работы над своей основной нитью».
Если я удалю код установки фона, проблема исчезнет (но obviusly все страницы имеют одинаковый фон).
Я читал, что обработка изображений может быть источником этой проблемы, но я задаюсь вопросом, каким образом тогда можно было бы реализовать простую функциональность, подобную этой (прокрутка, показывающая на каждой странице разные макеты или по крайней мере одно и то же макет, но с разными изображениями).
Заранее благодарен!
Вы находитесь в правильном направлении. Это потому, что изображения огромны. Вы можете использовать «TranslateDrawable» для плавного перевода фонов и изменения размера ресурсов изображений, как показано в руководстве разработчика Android. –