Анимация вида пульсаций при смене темы приложения на Android

#java #android

#java #Android

Вопрос:

Я хочу добавить ту же тему, меняющую анимацию

введите описание изображения здесь (Это приложение Telegram)

У меня есть radioGroup
введите описание изображения здесь
где onChangeListener меняются темы
, я хочу добиться этого:
когда вы проверяете темное радио, анимация начнется с позиции темного радио
, Если вы проверите light, она начнется с light и т.
Д. Как можно создать такую анимацию в приложении andoid?
мой полный код смены темы:

 public void chooseTheme(MenuItem item) {
        final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
        final View mView = getLayoutInflater().inflate(R.layout.dialog_theme,null);
        Button btn_cancel = mView.findViewById(R.id.btn_cancel);
        Button btn_okay = mView.findViewById(R.id.btn_okay);
        alert.setView(mView);
        final AlertDialog alertDialog = alert.create();
        alertDialog.setCanceledOnTouchOutside(false);
        final RadioGroup themeGroup = mView.findViewById(R.id.themeGroup);

        btn_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                alertDialog.dismiss();
            }
        });
        themeGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @SuppressLint("NonConstantResourceId")
            @Override
            public void onCheckedChanged(RadioGroup themeGroup, int i) {
                switch(i) {
                    case R.id.radioLight:
                        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                        setTheme(R.style.AppTheme);
                        Toast.makeText(getApplicationContext(),"Light mode",Toast.LENGTH_LONG).show();
                        restartApp();
                        break;
                    case R.id.radioDark:
                        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                        setTheme(R.style.darkTheme);
                        Toast.makeText(getApplicationContext(),"Dark mode", Toast.LENGTH_LONG).show();
                        restartApp();
                        break;
                    case R.id.radioSystem:
                        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
                        Toast.makeText(getApplicationContext(),"System mode", Toast.LENGTH_LONG).show();
                        restartApp();
                        break;
                }
            }
        });
        btn_okay.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onClick(View v) {

                alertDialog.dismiss();
            }
        });
        alertDialog.show();
    }
    public void restartApp() {
        Intent i = new Intent(getApplicationContext(),MainActivity.class);
        startActivity(i);
        finish();
    }
 

Комментарии:

1. Проверьте этот проект на github: github.com/danieleorlando/CircularReveal

2. интересно, я посмотрю, спасибо!

Ответ №1:

проверьте мою библиотеку github: https://github.com/imandolatkia/Android-Animated-Theme-Manager

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

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

Комментарии:

1. Репозиторий, на который вы ссылались, кажется вашим собственным: если это так, то вам необходимо явно раскрыть этот факт. В противном случае ваше сообщение может быть сочтено спамом.