Closed slovenl closed 3 years ago
~
通过反射拿到WheelView类里面的paintCenterText和paintOuterText变量就可以改变字体粗细还有字体样式了
private void getField(WheelView wheelView) {
try {
Field centerText = wheelView.getClass().getDeclaredField("paintCenterText");
Field outerText = wheelView.getClass().getDeclaredField("paintOuterText");
centerText.setAccessible(true);
outerText.setAccessible(true);
Paint paintCenterText = (Paint) centerText.get(wheelView);
Paint paintOuterText = (Paint) outerText.get(wheelView);
if (paintCenterText != null) {
paintCenterText.setFakeBoldText(true);
}
if (paintOuterText != null) {
paintOuterText.setFakeBoldText(true);
}
if (paintCenterText != null) {
paintCenterText.setTypeface(Typeface.DEFAULT);
}
if (paintOuterText != null) {
paintOuterText.setTypeface(Typeface.DEFAULT);
}
} catch (Exception e) {
e.printStackTrace();
}
}
为啥我反射也没有效果?
来信已受到,祝您心情愉快!
现使用反射可以单独设置中间区域和边缘区域的样式