我正在制作一个图像按钮。当我点击图像按钮时,我需要更改图像。实际上它只会改变背景图像几秒钟。为什么?
这是我的代码
<ImageButton android:id="@+id/favorite"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/start"
android:background="#00ffffff"
/>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/on" /> <!-- pressed -->
<item android:drawable="@drawable/off" /> <!-- default -->
</selector>
当我点击图片按钮时,我需要在图像上显示..?我可以在java方面写吗?我可以写一下图像按钮的点击监听器吗?
答案 0 :(得分:1)
这就是为什么使用选择器作为按钮背景的原因,图像会根据按钮的状态而改变。如果按下,图像将在&#34; on&#34;并且在正常状态下(没有按下也没有聚焦),图像将被关闭&#34;关闭&#34;。
编辑:
public class MainActivity extends AppCompatActivity {
ImageButton btn;
boolean isPressed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (ImageButton) findViewById(R.id.btn);
btn.setBackgroundResource(R.drawable.normal);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isPressed){
v.setBackgroundResource(R.drawable.normal);
}else{
v.setBackgroundResource(R.drawable.pressed);
}
isPressed = !isPressed; // reverse
}
});
}
<ImageButton
android:id="@+id/btn"
android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
答案 1 :(得分:0)
通过在图像的onClickListener中动态提供绝对路径或互联网网址来更改图像的来源。
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Here before changing the image you can check if the appropriate //image is set to the view.
image.setImageResource(R.drawable.on);
}
});
也可以像这样
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isPressed){
v.setBackgroundResource(R.drawable.normal);
}else{
v.setBackgroundResource(R.drawable.pressed);
}
isPressed = !isPressed; // reverse
}
});