BottomNavigation 아이콘 애니메이션
BottomNavigation 아이콘을 애니메이션으로 만들고 싶습니다.
가장 안직하게 BottomNavigationView.OnNavigationItemSelectedListener
if (item.icon is AnimatedVectorDrawable) {
(item.icon as AnimatedVectorDrawable).start()
}
시도해도 움직이지 않습니다. 약간의 아래 준비가 필요합니다.
환경
com.google.android.material:material:1.0.0
됩니다. 위 패키지는 compileSDKVersion AndroidP
가 필요합니다.
동작 미확인 정보
아직 P 대응할 수 없다고 하는 분은 com.android.support:design:28.0.0-alpha3
의 BottomNavigation에서도 할 수 있을지도 모릅니다. (가능한 분보고 할 수 있으면 기쁩니다)
htps // 마테리아 l. 이오 / 데 ゔ ぉ p / 안 d 로이 d / 도 cs / 갓찐 g-s r d /
소개
여기에 있는 대로 gradle의 설정을 실시한다.
build.gradleallprojects {
repositories {
google()
jcenter()
}
}
app/build.gradledependencies {
// ...
implementation 'com.google.android.material:material:1.0.0'
// ...
}
BottomNavigation 설정
layout.xml<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main content -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/navigation" />
</FrameLayout>
navigation.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">![guruguru_jissou.gif](https://qiita-image-store.s3.amazonaws.com/0/63740/7e479f16-ebad-c7bb-8b68-b79e0484650d.gif)
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
</menu>
여기까지는 좋은 대로입니다. 이것으로 이런 화면이 나올 것입니다.
일단 코드는 이런 느낌으로 해, 소재를 만듭니다
애니메이션 만들기
ShapeShifter 을 사용하여 아이콘을 애니메이션화합니다. 이번에는 도구를 사용하는 방법은 생략합니다.
이번에는 이런 느낌의 애니메이션을 만들어 보았습니다.
animated vector drawable로 내보낸 이미지를 drawable
디렉토리에 저장
한 번 더 추가
앞서 말한 것처럼 보통 이 SVG 이미지를 싣고 애니메이션시키는 코드를 써도 애니메이션하지 않습니다.animated-selector
로 지정된 drawable로 하고, 그것을 읽어들일 필요가 있습니다.
setting_anim_selector.xml<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:targetApi="16">
<!-- ここにさっきのAnimated Vector Drawableを入れる-->
<item android:id="@+id/state_on"
android:drawable="@drawable/animated_setting_icon"
android:state_checked="true"/>
<!--こっちには表示しているとき用の画像を乗せる-->
<item android:id="@+id/state_off"
android:drawable="@drawable/ic_settings_black_24dp"/>
<transition
android:drawable="@drawable/animated_setting_icon"
android:fromId="@id/state_off"
android:toId="@id/state_on" />
</animated-selector>
마지막으로 menu에 추가
navigation.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/setting_anim_selector"
android:title="@string/title_settings"/>
</menu>
이런 느낌으로 완성. 사람 번거로움의 수수함에 나른하다. .
하지만 kotlin 코드로 아무것도 할 필요가 없습니다.
Reference
이 문제에 관하여(BottomNavigation 아이콘 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/CaptainPag/items/28378a2322ec5b9ad01e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
if (item.icon is AnimatedVectorDrawable) {
(item.icon as AnimatedVectorDrawable).start()
}
com.google.android.material:material:1.0.0
됩니다. 위 패키지는
compileSDKVersion AndroidP
가 필요합니다.동작 미확인 정보
아직 P 대응할 수 없다고 하는 분은
com.android.support:design:28.0.0-alpha3
의 BottomNavigation에서도 할 수 있을지도 모릅니다. (가능한 분보고 할 수 있으면 기쁩니다)htps // 마테리아 l. 이오 / 데 ゔ ぉ p / 안 d 로이 d / 도 cs / 갓찐 g-s r d /
소개
여기에 있는 대로 gradle의 설정을 실시한다.
build.gradleallprojects {
repositories {
google()
jcenter()
}
}
app/build.gradledependencies {
// ...
implementation 'com.google.android.material:material:1.0.0'
// ...
}
BottomNavigation 설정
layout.xml<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main content -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/navigation" />
</FrameLayout>
navigation.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">![guruguru_jissou.gif](https://qiita-image-store.s3.amazonaws.com/0/63740/7e479f16-ebad-c7bb-8b68-b79e0484650d.gif)
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
</menu>
여기까지는 좋은 대로입니다. 이것으로 이런 화면이 나올 것입니다.
일단 코드는 이런 느낌으로 해, 소재를 만듭니다
애니메이션 만들기
ShapeShifter 을 사용하여 아이콘을 애니메이션화합니다. 이번에는 도구를 사용하는 방법은 생략합니다.
이번에는 이런 느낌의 애니메이션을 만들어 보았습니다.
animated vector drawable로 내보낸 이미지를 drawable
디렉토리에 저장
한 번 더 추가
앞서 말한 것처럼 보통 이 SVG 이미지를 싣고 애니메이션시키는 코드를 써도 애니메이션하지 않습니다.animated-selector
로 지정된 drawable로 하고, 그것을 읽어들일 필요가 있습니다.
setting_anim_selector.xml<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:targetApi="16">
<!-- ここにさっきのAnimated Vector Drawableを入れる-->
<item android:id="@+id/state_on"
android:drawable="@drawable/animated_setting_icon"
android:state_checked="true"/>
<!--こっちには表示しているとき用の画像を乗せる-->
<item android:id="@+id/state_off"
android:drawable="@drawable/ic_settings_black_24dp"/>
<transition
android:drawable="@drawable/animated_setting_icon"
android:fromId="@id/state_off"
android:toId="@id/state_on" />
</animated-selector>
마지막으로 menu에 추가
navigation.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/setting_anim_selector"
android:title="@string/title_settings"/>
</menu>
이런 느낌으로 완성. 사람 번거로움의 수수함에 나른하다. .
하지만 kotlin 코드로 아무것도 할 필요가 없습니다.
Reference
이 문제에 관하여(BottomNavigation 아이콘 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/CaptainPag/items/28378a2322ec5b9ad01e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
allprojects {
repositories {
google()
jcenter()
}
}
dependencies {
// ...
implementation 'com.google.android.material:material:1.0.0'
// ...
}
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main content -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/navigation" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">![guruguru_jissou.gif](https://qiita-image-store.s3.amazonaws.com/0/63740/7e479f16-ebad-c7bb-8b68-b79e0484650d.gif)
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
</menu>
ShapeShifter 을 사용하여 아이콘을 애니메이션화합니다. 이번에는 도구를 사용하는 방법은 생략합니다.
이번에는 이런 느낌의 애니메이션을 만들어 보았습니다.
animated vector drawable로 내보낸 이미지를
drawable
디렉토리에 저장한 번 더 추가
앞서 말한 것처럼 보통 이 SVG 이미지를 싣고 애니메이션시키는 코드를 써도 애니메이션하지 않습니다.animated-selector
로 지정된 drawable로 하고, 그것을 읽어들일 필요가 있습니다.
setting_anim_selector.xml<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:targetApi="16">
<!-- ここにさっきのAnimated Vector Drawableを入れる-->
<item android:id="@+id/state_on"
android:drawable="@drawable/animated_setting_icon"
android:state_checked="true"/>
<!--こっちには表示しているとき用の画像を乗せる-->
<item android:id="@+id/state_off"
android:drawable="@drawable/ic_settings_black_24dp"/>
<transition
android:drawable="@drawable/animated_setting_icon"
android:fromId="@id/state_off"
android:toId="@id/state_on" />
</animated-selector>
마지막으로 menu에 추가
navigation.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/setting_anim_selector"
android:title="@string/title_settings"/>
</menu>
이런 느낌으로 완성. 사람 번거로움의 수수함에 나른하다. .
하지만 kotlin 코드로 아무것도 할 필요가 없습니다.
Reference
이 문제에 관하여(BottomNavigation 아이콘 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/CaptainPag/items/28378a2322ec5b9ad01e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:targetApi="16">
<!-- ここにさっきのAnimated Vector Drawableを入れる-->
<item android:id="@+id/state_on"
android:drawable="@drawable/animated_setting_icon"
android:state_checked="true"/>
<!--こっちには表示しているとき用の画像を乗せる-->
<item android:id="@+id/state_off"
android:drawable="@drawable/ic_settings_black_24dp"/>
<transition
android:drawable="@drawable/animated_setting_icon"
android:fromId="@id/state_off"
android:toId="@id/state_on" />
</animated-selector>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home"/>
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard"/>
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications"/>
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/setting_anim_selector"
android:title="@string/title_settings"/>
</menu>
Reference
이 문제에 관하여(BottomNavigation 아이콘 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/CaptainPag/items/28378a2322ec5b9ad01e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)