我想添加相同的主题改变动画
我有一个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();
}
Run Code Online (Sandbox Code Playgroud)
检查我的 github 库:https://github.com/imandolatkia/Android-Animated-Theme-Manager
在此库中,您可以创建自定义主题并使用波纹动画动态更改它们,例如您的问题图像。
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |