"点击" imageButton的动画

时间:2018-04-07 13:22:54

标签: android android-animation android-imagebutton

我试图在触摸或不触摸图像按钮时将数据发送到服务器。我实现了那些问题,在我使用onTouch事件等之后,触摸动画就消失了。

buttonImages xml中的一个:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/lt_onclick" />
<item android:state_focused="true" android:drawable="@drawable/lt_onclick" />
<item android:drawable="@drawable/lt_noclick" />

我发现因为我使用了onTouch,我可能需要在ACTION_DOWN或ACTION_UP时激活一个动画,但我不知道它是怎么做的。

onTouch方法:

private void onControl(String st, MotionEvent event){
    if(event.getAction() == MotionEvent.ACTION_DOWN){
        Log.d("onControl","inside"+" "+st);
        new SendMessage().execute("S"+st);
    }
    if(event.getAction() == MotionEvent.ACTION_UP){
        Log.d("onControl","inside"+" "+st);
        new SendMessage().execute("P"+st);
    }
}

private View.OnTouchListener handleTouch = new View.OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {

    switch (v.getId()) {
        case R.id.Abtn:
            onControl("BA",event);
            break;
        case R.id.Bbtn:
            onControl("BB", event);
            break;
        case R.id.Xbtn:
            onControl("BX",event);
            break;
        case R.id.Ybtn:
            onControl("BY",event);
            break;
        case R.id.Rbtn:
            onControl("BR",event);
            break;
        case R.id.Lbtn:
            onControl("BL",event);
            break;
        case R.id.UpBtn:
            onControl("BU",event);
            break;
        case R.id.Dbtn:
            onControl("BD",event);
            break;
        case R.id.RTbtn:
            onControl("RT",event);
            break;
        case R.id.LTbtn:
            onControl("LT",event);
            break;
        case R.id.Start_btn:
            onControl("ST", event);
            break;
        case R.id.Back_btn:
            onControl("CK",event);
            break;
        case R.id.RB_btn:
            onControl("RB",event);
            break;
        case R.id.LB_btn:
            onControl("LB",event);
            break;


    }
    return true;
}
};

1 个答案:

答案 0 :(得分:0)

管理以其他方式解决此问题。 我打电话给MainActivity.super.onTouchEvent(event); 而不是返回true,它制作了更好的动画。