gpt4 book ai didi

android - 按钮未将其图像状态更改为 "pressed"

转载 作者:行者123 更新时间:2023-11-29 18:06:23 28 4
gpt4 key购买 nike

我正在尝试做一个简单的选择器。

这是我的选择器 xml 代码,名为“butt.xml”:

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/btn_activate_on" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_activate_off" android:state_pressed="false"/> <!-- default -->

这就是布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageButton
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="42dp"
android:src="@drawable/butt" />

这就是代码:

ImageButton ib;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ib = (ImageButton) findViewById(R.id.imageView1);
ib.setOnClickListener(this);
}

@Override
public void onClick(View v) {
ib.setSelected(true);

}

我的问题是,当我按住按钮时,状态没有改变。当我按下时,它正在将其图像更改为 "selected" 图像。但是当我松开手指时,它又回到了 "not sellected" 状态。

为什么会这样?我怎样才能让它保持在“已选择”模式?

最佳答案

如果您需要将按钮的状态显示为选中或未选中,则无需使用选择器。

相反,您必须使用代码设置背景(),并通过管理标志来检查您的按钮当前是否被选中。

喜欢

if(flag)
btn.setDrawableBackground(R.id.btn_activate_on)
else
btn.setDrawableBackground(R.id.btn_activate_off)

如果要显示对状态的影响,请按创建两个具有相反状态的选择器。

<item android:state_pressed="true"
android:drawable="@drawable/btn_activate_on"></item>
<item android:drawable="@drawable/btn_activate_off"></item>

还有一个是

<item android:state_pressed="true"
android:drawable="@drawable/btn_activate_off"></item>
<item android:drawable="@drawable/btn_activate_on"></item>

关于android - 按钮未将其图像状态更改为 "pressed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13229668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com