2015-03-13 1 views
2

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

+0

Какую анимацию вы хотите? – dhams

ответ

0

Вы можете создать анимированную иконку, используя анимированные растровые и растровые рамы. В L вы можете использовать AnimatedStateListDrawable для создания анимаций с поддержкой состояния (например, анимации флажков).

Вот AnimatedDrawable пример (на самом деле это реализация для флажка на L предварительного просмотре) с помощью 15мс-длинных кадров, которые можно запускать и останавливать из кода:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:duration="15" android:drawable="@drawable/my_icon_frame_000" /> 
    ...additional frames... 
</animation-list> 

А вот AnimatedStateListDrawable с помощью AnimatedDrawable переходы реализовать анимацию флажок, который начинается и останавливается автоматически на основе Просмотр состояния:

<animated-selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:state_checked="true"> 
     <bitmap android:src="@drawable/btn_check_to_on_mtrl_015" android:tint="?attr/colorControlActivated" android:alpha="?attr/disabledAlpha" /> 
    </item> 
    <item android:state_enabled="false"> 
     <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" android:alpha="?attr/disabledAlpha" /> 
    </item> 
    <item android:state_checked="true" android:id="@+id/on"> 
     <bitmap android:src="@drawable/btn_check_to_on_mtrl_015" android:tint="?attr/colorControlActivated" /> 
    </item> 
    <item android:id="@+id/off"> 
     <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" /> 
    </item> 
    <transition android:fromId="@+id/off" android:toId="@+id/on"> 
     <animation-list> 
      <item android:duration="15"> 
       <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" /> 
      </item> 
      ...additional frames... 
     </animation-list> 
    </transition> 
    <transition android:fromId="@+id/on" android:toId="@+id/off"> 
     <animation-list> 
      <item android:duration="15"> 
       <bitmap android:src="@drawable/btn_check_to_off_mtrl_000" android:tint="?attr/colorControlActivated" /> 
      </item> 
      ...additional frames... 
     </animation-list> 
    </transition> 
</animated-selector> 

кредит: Android L "delightful" drawable transformations

Для получения дополнительной информации: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html