2017-02-17 9 views
-1

я сделать анимацию для page в ViewPager с использованием метода transformPage:Гладкая анимация для зрения

Проблема: мне нужно исправить значение для scale (от 0,8 => 1, я имею в виду : 0.81, 0.82, 0.83 ...... 0.89.0.90, ... 0.99) переменная в зависимости от позиции (от 0.5 до 1), чтобы получить плавную анимацию от малого до большого.

 else if (position >= 0.5F && position <= 1F) {      

       ... 
       scale = ??; 

       ViewCompat.setScaleX(page, scale); 
       ViewCompat.setScaleY(page, 0.85F); 
     } 

, что я пытался до сих пор:

scale = (float) (0.8 + ((10*position)/100)); ==> not correct 

также я попытался несколько else if «ы, как:

else if (position >= 0.5F && position <= 0.625F) { 
     scale = .97 
} 

else if (position >= 0.625F && position <= 0.75F) { 
     scale = .9 
} 

else if (position >= 0.75F && position <= 0.875F) { 
     scale = .85 
} 

else if (position >= 0.875F && position <= 1.0F) { 
     scale = .80 
} 

==> результат так лага.

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

- Update: с помощью @RadekJ ответ я получаю обратный результат: от 1 до 0,8:

enter image description here

+0

да это правильно –

+0

И почему scaleY равно 0.85F. И только для моих знаний, почему вы пишете ViewCompat.setScale. Вы также можете написать page.setScaleY? –

+0

Мне просто нужно setScaleX, вид занимает всего 85% экрана по шкале Y –

ответ

1

Я делаю это всегда так:

float progressStart = 0.5f 
float progressEnd = 1f; 
float progressDelta = progressEnd - progressStart; 

float progress = (position - progressStart)/progressDelta; 
if(progress>1)progress=1; 
if(progress<0)progress=0; 

float endValue = 1f; 
float startValue = 0.8f; 

float delta = endValue - startValue; 
float currentScale = startValue + delta*progress; 

ViewCompat.setScaleX(page, currentScale); 
+0

Мне нужно обратное, я получаю от 1 до 0,8 –

+0

, пожалуйста, проверьте мой вопрос для изображения результата –

+0

, затем добавьте 'progress = 1- прогресс' перед строкой, где вычисляется 'currentScale' – RadekJ

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

  • Нет связанных вопросов^_^