android - Android:如何在单击时更改 imageButton 并在未单击时还原?
问题描述
我正在创建一个 android 应用程序,我想ImageButton
更改我在按下时创建的按下精灵,然后在按下它时更改回原始精灵。
我尝试弄乱该.isPressed()
函数,但它与该event
函数不同,因此它的工作方式不一样ACTION_DOWN
,它主要冻结了程序,偶尔会做一些事情,但不是应该做的事情。
任何人都可以帮忙吗?
XML:
<ImageButton
android:id="@+id/player_down"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:background="#00000000"
android:scaleType="centerInside"
app:srcCompat="@drawable/player_down_1"
主要活动:
public void onClick(View view) {
if (view == player_down) {
pixelGridView.player_goDown();
}
MainActivity 与归档尝试:
if (view == player_down) {
player_down.setImageResource(R.drawable.player_down_2);
if(!player_down.isPressed()) {
player_down.setImageResource(R.drawable.player_down_1);
pixelGridView.player_goDown();
}
}
解决方案
一个简单的答案可能是使用布尔值和不同的资产,例如切换按钮
主要活动
Boolean isClicked = false;
public void onClick(View view) {
if (view == player_down) {
if(isClicked == true){
isClicked = false;
// change your button here
}else{
isClicked = true;
// change your button here
}
pixelGridView.player_goDown();
}
推荐阅读
- yosys - 通行证中技术地图调用的路径选项
- c++ - 存储最小数量的静态变量
- laravel - Vue-laravel 中的动态 CSS 有问题
- javascript - Firebase orderByChild 在我的数据库中不起作用
- arrays - 图像模糊问题
- linux - 文件存在于 shell 脚本中
- windows - PS:模拟CCleaner“卸载”工具列出PC上安装的程序
- python - 如何初始化整个 Python 模块并导入所有类,而无需为每次调用引用模块名称?
- oracle - 无法确定“oracle”的方言
- django - 如何运行 makemigrations
--empty 与 Django 和 Docker?