#java #android
#java #Android
Вопрос:
Я хочу добавить ту же тему, меняющую анимацию
У меня есть 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. Репозиторий, на который вы ссылались, кажется вашим собственным: если это так, то вам необходимо явно раскрыть этот факт. В противном случае ваше сообщение может быть сочтено спамом.