事件分发

来源:互联网 发布:万网域名证书查询 编辑:程序博客网 时间:2024/06/06 04:10

布局文件

<?xml version="1.0" encoding="utf-8"?>
<day.com.view_viewgrop_activity.MyLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="day.com.view_viewgrop_activity.MainActivity">




    <day.com.view_viewgrop_activity.WanghaoButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/shwang"
     />


</day.com.view_viewgrop_activity.MyLayout>


MainActvity

package day.com.view_viewgrop_activity;


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends AppCompatActivity {
     WanghaoButton  mbutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      // mbutton= (WanghaoButton) findViewById(R.id.shwang);
    /*    mbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i("mainactivity","");
            }
        });*/


    }
}



分发

package day.com.view_viewgrop_activity;


import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.LinearLayout;


/**
 * description: $todo$
 * autour: BlueAmer
 * date: $date$ $time$
 * update: $date$
 * version: $version$
 */


public class MyLayout  extends LinearLayout{
    public MyLayout(Context context) {
        super(context);
    }


    public MyLayout(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }


    public MyLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }


    public MyLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }


    //分发


    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        Log.i("mylayout", "分发: ");
        return super.dispatchTouchEvent(ev);
    }




    //消费


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        Log.i("mylayout", "消费: ");
        return super.onTouchEvent(event);
    }




    //拦截




    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        Log.i("mylayout", "拦截: ");
        return super.onInterceptTouchEvent(ev);
    }
}


设置按钮

package day.com.view_viewgrop_activity;


import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.PointerIcon;
import android.widget.Button;


import static android.content.ContentValues.TAG;


/**
 * description: $todo$
 * autour: BlueAmer
 * date: $date$ $time$
 * update: $date$
 * version: $version$
 */


public class WanghaoButton extends android.support.v7.widget.AppCompatButton {


    public WanghaoButton(Context context) {
        super(context);
    }


    public WanghaoButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }


    public WanghaoButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }






    @Override
    public CharSequence getAccessibilityClassName() {
        return super.getAccessibilityClassName();
    }


    @Override
    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
        return super.onResolvePointerIcon(event, pointerIndex);
    }
  //事件分发
    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        Log.i("WanghaoButton", "事件分发: ");
        return super.dispatchTouchEvent(event);


    }
    //消费


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        Log.i("WanghaoButton", "消费");
        return super.onTouchEvent(event);


    }


}


原创粉丝点击