【问题标题】:Ripple kind animation when app theme is changing Android应用主题更改 Android 时的涟漪动画
【发布时间】:2021-08-21 19:57:13
【问题描述】:

我想添加相同的主题更改动画

(这是电报应用程序)

我有一个radioGroup

onChangeListener 更改主题
我想实现这个:
当您选中暗单选时,动画将从暗单的位置开始
如果您检查灯光,它将从灯光等开始
安卓app怎么能做出这样的动画?
我的完整主题转换代码:

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();
    }

【问题讨论】:

标签: java android


【解决方案1】:

查看我的 github 库:https://github.com/imandolatkia/Android-Animated-Theme-Manager

在这个库中,您可以创建自定义主题并使用波纹动画动态更改它们,就像您的问题图片

【讨论】:

  • 您链接的仓库似乎是您自己的:如果是这种情况,那么您需要明确披露这一事实。否则,您的帖子可能会被视为垃圾邮件。
  • 我编辑了,感谢您的关注@AdrianMole
猜你喜欢
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多