布局文件
<?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);
}
}