随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
1、文字的颜色随状态而更改:放在res/color/目录下,使用android:textColor
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#3334ca"/>
<item android:state_focused="true" android:color="#3334ca"/>
<item android:state_pressed="true" android:color="#3334ca"/>
<item android:color="#766545"/>
</selector>
2、背景颜色随状态改变:放在res/color/目录下,使用android:background:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"><shape>
<gradient android:angle="0" android:centerColor="#12dcf4" android:endColor="#12dcf4" android:startColor="#12dcf4" />
</shape></item>
<item android:state_focused="true"><shape>
<gradient android:angle="0" android:centerColor="#12dcf4" android:endColor="#12dcf4" android:startColor="#12dcf4" />
</shape></item>
<item android:state_pressed="true"><shape>
<gradient android:angle="0" android:centerColor="#12dcf4" android:endColor="#12dcf4" android:startColor="#12dcf4" />
</shape></item>
<item><shape>
<gradient android:angle="0" android:centerColor="#02cd12" android:endColor="#02cd12" android:startColor="#02cd12" />
</shape></item>
</selector>
3、获取字宽:
/**
* 计算字宽(若设置了textStyle需进一步设置TextPaint)
*
* @param text
* 文字
* @param size
* 文字大小
* @return 此段文本的宽度
*/
public static float getTextWidth(String text, float size) {
TextPaint tp = new TextPaint();
tp.setTextSize(size);
return tp.measureText(text);
}