????????达到的效果即按钮点击时颜色变化,再次点击颜色恢复,以此类推。视频效果如下所示,类似按钮选中的效果。
????????为达到这一效果,使用了setBackgroundColor这一函数修改按钮的背景颜色。这里设定初始背景色为白色,按下后为蓝色。
????????首先编写确定按钮位置、大小等ui信息的xml文件。
<Button
android:id="@+id/b0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginTop="48dp"
android:background="@color/white"
android:text="概念"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
????????其中,本按钮的id值为b0,按钮上的文字为“概念”。按钮的背景颜色为白色,即初始颜色。
? ? ? ? 在对应的java文件中,设置一个标记量flag记录此时的按钮颜色状态。在这里设定flag初始值为0,按下后为1。
? ? ? ? 通过id找到需要设置这一效果的按钮,并重写其点击事件的监听器。当点击事件触发之后,即刻判断flag的值。flag=0时说明此时按钮为初始状态,需要将其变色,故flag应置为1,颜色要改成蓝色。flag为=1时操作类似,flag置为0,颜色改成白色
? ? ? ? java实现的代码如下(我这里flag是一个数组,btn0的标记量是flag[0]):
int flag[]=new int[]{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
Button btn0=(Button)findViewById(R.id.b0);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag[0]==0)
{
btn0.setBackgroundColor(Color.parseColor("#00abf4"));
flag[0]=1;
}//选中
else
{
btn0.setBackgroundColor(Color.parseColor("#ffffff"));
flag[0]=0;
}//取消
}
});
|