C# Android在按下并释放时更改图像按钮,(按钮点击错误不再工作)

C# Android在按下并释放时更改图像按钮,(按钮点击错误不再工作),c#,xamarin,xamarin.android,C#,Xamarin,Xamarin.android,所以我试着在按下并释放时改变imageButton的图像,它可以工作。但是在我实现代码后,Button.Click函数将不再执行/触发,下面是我的代码 ImageButton btnNewGame; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); bt

所以我试着在按下并释放时改变imageButton的图像,它可以工作。但是在我实现代码后,Button.Click函数将不再执行/触发,下面是我的代码

    ImageButton btnNewGame;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.Main);
        btnNewGame = FindViewById<ImageButton>(Resource.Id.btnNewGame);

        btnNewGame.Click += BtnNewGame_Click;

        btnNewGame.Touch += (object sender, View.TouchEventArgs e) =>
        {
            if (e.Event.Action == MotionEventActions.Down)
            {
                btnNewGame.SetImageResource(Resource.Drawable.Button_New_Game_Pressed);
            }
            else if (e.Event.Action == MotionEventActions.Up)
            {
                btnNewGame.SetImageResource(Android.Resource.Drawable.IcMenuGallery);

            }
        };

    private void BtnNewGame_Click(object sender, EventArgs e)
    {
        Intent nextActivity = new Intent(this, typeof(NextPage));
        StartActivity(nextActivity);
    }
ImageButton btnewgame;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
btnNewGame=findviewbyd(Resource.Id.btnNewGame);
btnNewGame.Click+=btnNewGame\u Click;
btnNewGame.Touch+=(对象发送者,View.TouchEventArgs e)=>
{
if(e.Event.Action==MotionEventActions.Down)
{
btnNewGame.SetImageResource(Resource.Drawable.Button\u New\u Game\u Pressed);
}
else if(e.Event.Action==MotionEventActions.Up)
{
SetImageResource(Android.Resource.Drawable.IcMenuGallery);
}
};
私有void BtnNewGame_单击(对象发送者,事件参数e)
{
意向nextActivity=新意向(此,类型为(NextPage));
StartTactivity(NextTactivity);
}
有人能告诉我为什么吗


谢谢!

您可以使用选择器来实现这一点

在Drawables目录中创建一个XML文件

imagebutton_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_turned_in_black_24dp" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
    <item
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
</selector>
这样,您就可以自由地删除代码上的
OnTouch
实现,而
单击
事件将继续工作


希望这有帮助!

您可以使用选择器来完成这一点

在Drawables目录中创建一个XML文件

imagebutton_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_turned_in_black_24dp" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
    <item
        android:state_enabled="true"
        android:drawable="@drawable/ic_assignment_returned_black_24dp" />
</selector>
这样,您就可以自由地删除代码上的
OnTouch
实现,而
单击
事件将继续工作


希望这能有所帮助!

非常感谢!我能问一下什么是启用状态、按下状态和聚焦状态吗?谢谢!非常感谢!我能问一下启用状态、按下状态和聚焦状态是什么吗?谢谢!