2014-12-14 4 views
0

Прежде всего, извините за мой английский.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 все страницы имеют одинаковый фон).

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

Заранее благодарен!

+2

Вы находитесь в правильном направлении. Это потому, что изображения огромны. Вы можете использовать «TranslateDrawable» для плавного перевода фонов и изменения размера ресурсов изображений, как показано в руководстве разработчика Android. –

ответ

0

Только в случае, если кто-то сталкиваются с тем же вопросом:

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

Смежные вопросы