2017-01-27 3 views
0

Я создаю приложение, которое необходимо и изображение для перемещения и выведения в соответствии с движением DrawerLayout. Например, когда мы делаем open ящик, изображение немного сжимается, и когда мы делаем close ящик, тогда изображение восстанавливает его размер. У меня есть это изображение в Toolbar.Переход с макетом ящика

Мой код:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:layout_scrollFlags="scroll|enterAlways" 
     android:background="@android:color/transparent" 
     android:paddingLeft="10dp"/> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/left" 
     android:layout_centerVertical="true" 
     android:id="@+id/img"/> 
</RelativeLayout> 

Я попытался сделать это, добавив следующий код

mImage.setAnimation(AnimationUtils.loadAnimation(context,R.anim.animation)); 

в onDrawerClosed(View view) и onDrawerOpened(View drawerView)

Но это не полезно, как мне нужно чтобы синхронизация анимации или перехода с движением ящика.

Если у кого-нибудь есть предложения, поделитесь им.

+0

Вы просто хотите сокращаться и расти изображения, или перемещать его по горизонтали тоже? –

+0

Actualy Я хочу сжиматься и расти изображение по горизонтали – Atula

+0

Итак, вы хотите, чтобы его сжать? Такая же высота, но тоньше? И нет скольжения? –

ответ

0

Внесите DrawerLayout.DrawerListener и в void onDrawerSlide (View drawerView, float slideOffset) вычислите логику анимации.

img.animate().scaleX(slideOffset).scaleY(slideOffset); 

Вам необходимо вычислить значение шкалы, основанной на slideOffset. Кроме того, в void onDrawerClosed (View drawerView) масштабе сброса на

img.animate().scaleX(1).scaleY(1); 
+0

привет, я пробовал это и это не совсем то, что я хочу. Это просто обратное ... – Atula

+0

@Atula вам нужно отрегулировать значение slideOffset. Вам нужно вычислить как img.animate(). ScaleX (1f - slideOffset) .scaleY (1f - slideOffset); –

+0

@ Атула Это сработало? –

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