Java 应用程序主题改变时的Ripple类动画 我想添加相同的主题更改动画

Java 应用程序主题改变时的Ripple类动画 我想添加相同的主题更改动画,java,android,Java,Android,(这是电报应用程序) 我有一个radioGroup 其中onChangeListener更改主题 我想做到这一点: 选中暗收音机时,动画将从暗收音机的位置开始 如果您选中灯光,它将从灯光等开始 如何在andoid应用程序中制作此类动画? 我的完整主题更改代码: public void chooseTheme(MenuItem item) { final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivit

(这是电报应用程序)

我有一个
radioGroup


其中
onChangeListener
更改主题
我想做到这一点:
选中暗收音机时,动画将从暗收音机的位置开始
如果您选中灯光,它将从灯光等开始
如何在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();
    }

检查这个github项目:很有趣,我会看的,谢谢!检查这个github项目:很有趣,我会看的,谢谢!