联系人(contacts)学习一如何实现contacts中电话号码字体变化的效果:
效果如下:
变化为以下效果:
实现方法:
1、Activity 实现 TextWatcher 该 interface
2、重写以下3个方法:
private EditText mDigits;
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence input, int start, int before, int changeCount) {
}
public void afterTextChanged(Editable input) {
if (mDialpad != null) {
if (input.toString().length() <= 14) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 60f);
} else if (input.toString().length() <= 17) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50f);
} else if (input.toString().length() <= 21) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 40f);
} else {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30f);
}
}else{
if (input.toString().length() <= 20) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 60f);
} else if (input.toString().length() <= 24) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 50f);
} else if (input.toString().length() <= 31) {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 40f);
} else {
mDigits.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30f);
}
}
if (SpecialCharSequenceMgr.handleChars(this, input.toString(), mDigits)) {
mDigits.getText().clear();
}
}