Android 点击按钮实现来回切换背景图和文字

昨天在做项目的时候碰到了一个见过但没做过的小功能,“点击按钮实现来回切换背景图和文字”  ,虽然很简单,但我还还是想写下来记录自己的成长脚印(本人新手)

如下图,背景图片在绿色和灰色中切换,文字在“已行动”和“未行动”中切换,


我用了两种大同小异的方法

TextView run_action;

run_action = (TextView) findViewById(R.id.fitting_action_run);//跑步

run_action.setOnClickListener(this);

方法一:

定义一个int型变量并且赋初值

public int time = 1;

然后在onClick点击事件里判断即可

if (time % 2 == 1) {
run_action.setBackgroundResource(R.drawable.bg_fitting_action_down);
run_action.setText("已行动");

}else {
run_action.setBackgroundResource(R.drawable.bg_fitting_add);
run_action.setText("未行动");
}


time++;

方法二:

定义一个boolean型变量

boolean isActive;

然后在onClick点击事件里判断:

if (isActive) {
isActive = false;
run_action.setBackgroundResource(R.drawable.bg_fitting_add);
run_action.setText("未行动");
}else{
isActive = true;
run_action.setBackgroundResource(R.drawable.bg_fitting_action_down);
run_action.setText("已行动");
}



Android Studio中,点击按钮切换按钮背景图片通常涉及到两个主要步骤:首先是在布局文件中设置按钮的基本属性,然后是在代码中设置按钮的点击事件监听器来改变背景图片。 以下是基本的步骤介绍: 1. 在XML布局文件中定义按钮,并设置初始的背景图片: ```xml <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_background_initial" /> ``` 这里`@drawable/button_background_initial`是按钮初始的背景图片。 2. 在Activity或Fragment的代码中设置按钮的点击事件监听器,以便在点击时切换背景图片: ```java Button myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 判断当前的背景图片 if (myButton.getBackground().getConstantState() == getResources().getDrawable(R.drawable.button_background_initial).getConstantState()) { // 如果是初始背景,则切换到另一个图片 myButton.setBackground(getResources().getDrawable(R.drawable.button_background_next)); } else { // 如果已经切换过了,则再切换回初始图片 myButton.setBackground(getResources().getDrawable(R.drawable.button_background_initial)); } } }); ``` 在这段代码中,`R.drawable.button_background_next`是你希望点击按钮后显示的第二个背景图片。 请注意,如果应用支持不同的屏幕密度,你可能需要为不同的屏幕密度提供不同的图片资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值