android如何改变按钮样子,android – 如何以编程方式更改ImageButton的样式

在这个特定的Activity中,用户应该选择在摇滚剪刀游戏中选择的玩家1和玩家2的析构函数.

我尝试了几种方法:第一种方法是简单地让所选的ImageButton单击,但我没有找到任何解决方案来实现这一点.

第二个是将选择的ImageButton设置为不可点击并更改其图像,如下图所示.在那里,玩家1选择了“摇滚”而玩家2没有选择.如您所见,一旦我更改了ImageButton的图像,边框就会消失.

我改变了像这样的按钮的状态

public void onClickRock1(View v){

choosenDestructor1 = 1;

buttonRock1.setImageResource(R.drawable.rock_clicked);

buttonRock1.setBackgroundColor(getResources().getColor(R.color.button_background_stay_clicked));

buttonRock1.setClickable(false);

buttonPaper1.setImageResource(R.drawable.paper);

buttonPaper1.setBackgroundColor(getResources().getColor(R.color.button_background));

buttonPaper1.setClickable(true);

buttonScissors1.setImageResource(R.drawable.scissors);

buttonScissors1.setBackgroundColor(getResources().getColor(R.color.button_background));

buttonScissors1.setClickable(true);

}

对于所有其他5个按钮,与此方法类似.现在,我认为用简单的Image覆盖ImageButton的样式会使我的自定义ImageButton样式的边框消失,但这只是猜测.

我写了第二个自定义ImageButton样式,具有不同的背景颜色和相同的边框,但我无法弄清楚如何从代码中在ImageButton上设置该样式.

所以我的问题是,哪种方法最聪明才能解决这个问题(我认为是第三种方法,但也许还有另一种方法),如果是第三种方法,那么如何从代码中设置ImageButton的样式.

编辑:

与rgrocha的回答类似,我编辑了我的选择器(已经集成在custom_imagebutton.xml中),如下所示

android:color="@color/button_background" />

android:width="2dp"

android:color="#FFF716" />

android:left="10dp"

android:top="10dp"

android:right="10dp"

android:bottom="10dp" />

android:color="@color/button_background_stay_clicked" />

android:width="2dp"

android:color="#FFF716" />

android:left="10dp"

android:top="10dp"

android:right="10dp"

android:bottom="10dp" />

android:color="@color/button_background" />

android:width="1dp"

android:color="#FFFFFF" />

android:radius="0dp" />

android:left="10dp"

android:top="10dp"

android:right="10dp"

android:bottom="10dp" />

和onClickRock1方法一样

public void onClickRock1(View v){

choosenDestructor1 = 1;

buttonRock1.setSelected(true);

buttonPaper1.setSelected(false);

buttonScissors1.setSelected(false);

}

像这样解决它会导致为每个ImageButton(岩石,纸张,剪刀)制作custom_imagebutton.xml,以下是以下问题:

1.边界不可见(重要的是,因为我希望有这些边界)

2.图像不再缩放(这没关系,因为我喜欢它更像这样)

所以基本上,它看起来像我上面发布的图像,除了图像由于没有缩放而略大一些(在layout.xml中,我设置scaleType =“fitCenter”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值