2015-09-21 1 views
0

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

public void transformPage(View view, float f) 

называется. В этой функции я хочу добавить функциональность, чтобы при просмотре слайдов, например, от 1 до 2 или от 2 до 3, некоторое изображение с первой страницы должно перейти на второй экран.

Я хочу реализовать функциональные возможности, такие как экран приветствия Android-приложений GROFERS.

Пожалуйста, помогите мне

+2

Что такое GROFERS? – Blackbelt

+0

Это приложение для Android https://play.google.com/store/apps/details?id=com.grofers.customerapp –

ответ

1

Я сделал это с помощью этого -

public void transformPage(View view, float f) { 
      if(view.getTag() != null) { 
       int i = Integer.parseInt(String.valueOf(view.getTag())); 
       if (f >= -1F && f < 1.0F) { 
        if (i == 0) { 
         animateOnFirstScreen(f); 
        } else { 
         if (i == 1) { 
          animateOnSecondScreen(f); 
          return; 
         } 
         if (i == 2) { 
          animateOnThirdScreen(f); 
          return; 
         } 
        } 
       } 
      } 
     } 

private void animateOnFirstScreen(float f) 
    { 
     if (f <= 0.0F) 
     { 
      f = Math.abs(f); 
      posX = (TEXT_GROCERY_MART_FINAL_X - TEXT_GROCERY_MART_INIT_X) * f + TEXT_GROCERY_MART_INIT_X; 
      textGroceryMart.setTranslationX(posX); 
      posY = (TEXT_GROCERY_MART_FINAL_Y - TEXT_GROCERY_MART_INIT_Y) * f + TEXT_GROCERY_MART_INIT_Y; 
      textGroceryMart.setTranslationY(posY); 

       imageMuffin.setAlpha(0.0F); 
       imageEnergyDrink.setAlpha(0.0F); 
       imageMuffin.setScaleX(0.0F); 
       imageEnergyDrink.setScaleX(0.0F); 
     } 
    } 
+0

вы можете отправить полный пример, я попробую, но не могу успешно. Спасибо –

+0

view.getTag() return null always –

+0

Не могли бы вы рассказать мне, как setTag() для viewpager? – Kunu

1

Попробуйте изменить изображение на основе страницы вашего находятся в использовании позиции

public void transformPage(View view, float f) 
    { 
     int position=(int)f; 
     switch(f) 
     { 
     case 1: 
     imageview.setImageResource(R.id.youimageID); 
     break; 
     case 2: //so on .. 
     } 
    } 
+0

Как передать изображение с одной страницы на другую –

+0

Передача изображения означает? переход на следующую страницу? –

1

Это заняло у меня два с половиной дня чтобы сделать его безупречным в Гроферсе. Если вы дадите ему более пристальный взгляд, все, что вы видите, переходя от одного фрагмента к другому, фактически не перемещается из одного фрагмента в другой.

Внутренняя активность ViewPager и фрагменты viewPager содержат статические изображения. И все изображения, которые вы видите, движутся внутри самой деятельности, а не внутри фрагментов.

Когда нужно преобразовывать изображения?

При получении обратных вызовов от ViewPager

public void transformPage(View view, float f) { 
    ... 
} 

Вы можете сделать преобразование изображений в деятельности, в зависимости от которых фрагмент входит и который один покидает вид.

Как вы узнаете, какой фрагмент входит и какой из них уходит?

При создании фрагментов, которые будут добавлены к ViewPager вы можете прикрепить метку к каждому фрагменту

rootView.setTag(tag) 

Tag может быть целое число, представляющее положение фрагмента внутри ViewPager.

public void transformPage(View view, float position) { 
int tag = Integer.parseInt(String.valueOf(view.getTag())); 
    if (position < -1) { // [-Infinity,-1) 
     // This page is way off-screen to the left. 
    } else if (position < 1) { // [-1,1] 
     // Decide which fragment is sliding left and which one is sliding right. 
     if (tag == 0) 
      // Transformation between first and second fragment 
     else if (tag == 1) 
      // Transformation between first, second and third fragment 
     else if (tag == 2) 
      // Transformation between third and fourth fragment 
    } else { // (1,+Infinity] 
     // This page is way off-screen to the right. 
    } 
} 

Что самое нужно позаботиться?

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