重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在drawable里新建一个xml,然后写
成都创新互联公司主营墨江网站建设的网络公司,主营网站建设方案,成都app开发,墨江h5微信小程序开发搭建,墨江网站营销推广欢迎墨江等地区企业咨询
selector
item android:state_pressed="true" android:drawable="按下时的样式"item
item android:state_pressed="false" android:drawable="正常时的样式"item
selector
然后可以再去创建两个drawable来绘制形状
如果你只是需要改变颜色那么直接在string.xml里写这样两条也行
drawable name="正常时的样式名字"正常时的颜色值/drawable
drawable name="按下时的样式名字"按下时的颜色值/drawable
然后名字一一对应就行了
别忘了在控件里引用
android:background="你之前设置的选择器"
画图的话
LinearGradient lg = new LinearGradient(statrX, statrY, statrX,
stopY, new int[] { Color.rgb(5, 254, 4),
Color.rgb(189, 254, 0), Color.rgb(255, 142, 4),
Color.rgb(248, 0, 1), Color.rgb(148, 0, 78),
Color.rgb(121, 2, 43) }, new float[] { 0, 0.2f, 0.4f,
0.6f, 0.8f, 1.0f }, TileMode.MIRROR);
//这个是y轴上的变化从绿色到橘黄色到大红色到黑红色。。。
//float数组相当于把Y轴平分为5段
paint.setShader(lg);
线程的话
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 100:
textView.setTextColor(colors[msg.arg1]);//颜色的数组,和下面的for的次数要等
break;
default:
break;
}
};
};
private void huatu() {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
for (int i = 0; i 5; i++) {
Thread.sleep(200);
Message message=new Message();
message.what=100;
message.arg1=i;
handler.sendMessage(message);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
第一种情况:从哪儿到哪儿固定的换文字颜色
第二种情况:部分指定文字规定颜色:
第三种:指定一段字符串中某几个字体颜色
第四种情况:直接指定某段文字颜色:
前三种都需要计算起止位置,左含右不含原理.