Анимация, например переключение учетных записей в приложении Gmail.

Вид навигации по приложению Gmail

Преобразуйте изображение, по которому щелкнули, в изображение активной учетной записи и затемните изображение активной учетной записи с его позиции, чтобы изображение, на которое было нажато, исчезло.


person Ashish Kumawat    schedule 07.07.2016    source источник
comment
Это означает, что когда вы переключаете учетную запись, изображение профиля меняется, вы хотите это.   -  person Harshad Pansuriya    schedule 07.07.2016
comment
да. с этими двумя анимациями.   -  person Ashish Kumawat    schedule 07.07.2016
comment
Я прошел через эту библиотеку, она не использует анимацию, как приложение Gmail. Также он не использует новый вид навигации.   -  person Ashish Kumawat    schedule 07.07.2016
comment
попробуйте этот stackoverflow.com/a/19535228/1760421   -  person Yogesh    schedule 07.07.2016
comment
Опубликуйте макет XML, который вы используете для заголовка, чтобы я мог видеть идентификаторы кругов вашей учетной записи и то, как вы их настраиваете. У меня уже есть код для анимации.   -  person kris larson    schedule 12.07.2016
comment
@AshishKumawat смотрите мой ответ ниже.   -  person Harshad Pansuriya    schedule 17.07.2016


Ответы (3)


Используйте эффект анимации с макетами и делайте все, что хотите. Я предлагаю вам следовать уроку, который полезен для меня, и я использую его для анимации.

Пример анимированной навигации

https://github.com/mxn21/FlowingDrawer

Эффект кнопки для анимации

Другое полезное

https://github.com/XXApple/AndroidLibs/blob/master/%E5%B8%83%E5%B1%80Layout/README.md

это старый, но вечнозеленый пример Ravi Bro.

http://www.androidhive.info/2013/06/android-working-with-xml-animations/

person parik dhakan    schedule 16.07.2016

Как я нашел эту ссылку. : https://github.com/HeinrichReimer/material-drawer.

В этой ссылке NavigationDrawer демонстрация использует Switch Account метод, который вам требуется для изменения вашей учетной записи.

Для этого вы должны выбрать свою учетную запись, нажав на Small round corner, как вы можете видеть на снимке экрана (+2), правая сторона которого открыта DropDown. И вы должны выбрать, какую учетную запись вам нужно пройти.

Зависимость:

Зависимость Gradle:

repositories {
    // ...
    maven { url 'https://jitpack.io' }
}
dependencies {
    compile 'com.heinrichreimersoftware:material-drawer:2.3.2'
}

Как использовать :

Шаг 1. Пусть ваша активность расширяет DrawerActivity:

public class MainActivity extends DrawerActivity {}

Шаг 2. Установите содержание:

setContentView(R.layout.activity_main);

Шаг 3. Установите профиль:

drawer.setProfile(
        new DrawerProfile()
                .setRoundedAvatar((BitmapDrawable)getResources().getDrawable(R.drawable.profile_avatar))
                .setBackground(getResources().getDrawable(R.drawable.profile_cover))
                .setName(getString(R.string.profile_name))
                .setDescription(getString(R.string.profile_description))
                .setOnProfileClickListener(new DrawerProfile.OnProfileClickListener() {
                    @Override
                    public void onClick(DrawerProfile drawerProfile, long id) {
                        Toast.makeText(MainActivity.this, "Clicked profile #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

Шаг 4. Заполните список ящиков:

drawer.addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_first_item))
                .setTextPrimary(getString(R.string.title_first_item))
                .setTextSecondary(getString(R.string.description_first_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked first item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );
drawer.addDivider();
drawer.addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_second_item))
                .setTextPrimary(getString(R.string.title_second_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked second item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

Шаг 5. Добавьте actionBarStyle в свою тему:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="actionBarStyle">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

Шаг 6 (необязательно). Измените тему ящика:

Ящик получает тему в зависимости от выбранной вами темы приложения, но вы также можете изменить ее.

setDrawerTheme(
        new DrawerTheme(this)
                .setBackgroundColorRes(R.color.background)
                .setTextColorPrimaryRes(R.color.primary_text)
                .setTextColorSecondaryRes(R.color.secondary_text)
                .setTextColorPrimaryInverseRes(R.color.primary_text_inverse)
                .setTextColorSecondaryInverseRes(R.color.secondary_text_inverse)
                .setHighlightColorRes(R.color.highlight)
);

Шаг 7 (необязательно). Установите собственную панель инструментов:

Вы можете установить свою собственную панель инструментов, как и в случае с ActionBarActivity.

setSupportActionBar(toolbar);

Выход :

введите здесь описание изображения

введите здесь описание изображения

Надеюсь, это поможет вам Happy Coding...

person Harshad Pansuriya    schedule 16.07.2016
comment
Я уже использую новый вид навигации Android, и почти все кодирование выполняется на нем, поэтому для анимации мне сложно изменить весь код, чтобы использовать библиотеку для ящика. - person Ashish Kumawat; 17.07.2016
comment
@AshishKumawat Посмотрите как ваше требование Все, что вы не получаете напрямую, когда у вас есть код, это означает, что вы создали его с помощью специального способа. Так что я думаю, что это лучший подход для переключения учетной записи. а также эта библиотека такая же, как NavigationDrawer, которую мы получаем напрямую. - person Harshad Pansuriya; 17.07.2016

Мне нравятся функции этой библиотеки, когда кто-то говорит о материализации навигационного ящика, это очень полезно. вы можете определенно реализовать это вот снимки экрана.

введите здесь описание изображения

введите здесь описание изображения

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

person TapanHP    schedule 15.07.2016