Eine der Möglichkeiten, wie Sie dies tun können, ist die Verwendung Ihrer eigenen Scheckbilder im CheckBox
. Sie werden für die verschiedenen Zustände Bilder benötigen, die Sie von http://android-holo-colors.com/
erhalten, dann können wir diese Drawables in unserem Code als Referenz:
Drawable mEnabledBg = getResources().getDrawable(R.drawable.check_bg_enabled);
Drawable mCheckedBg = getResources().getDrawable(R.drawable.check_bg_checked);
Drawable mDisabledBg = getResources().getDrawable(R.drawable.check_bg_disabled);
Jetzt verwenden wir sie in ein StateListDrawbles
:
StateListDrawable tickColorStates = new StateListDrawable();
tickColorStates.addState(new int[]{android.R.attr.state_checked}, mCheckedBg); //checked
tickColorStates.addState(new int[]{-android.R.attr.state_checked, android.R.attr.state_enabled}, mEnabledBg); //un-checked
tickColorStates.addState(new int[]{-android.R.attr.state_enabled}, mDisabledBg); //disabled
checkBox.setButtonDrawable(tickColorStates);
Natürlich kann dieses Setup auch in XML erfolgen und Sie müssen dann einfach setButtonDrawable()
aufrufen. Hoffe das hilft.
Wenn Sie es einstellen, wenn es nicht an ein Fenster angeschlossen ist, dann wird es keine Animation geben. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/27139262/change-switch-state-without-animation. – lionscribe
Das hat für mich funktioniert. Vielen Dank! –