先给大家介绍一下android的触摸事件:
接下来直接上代码:
java部分:
package com.zking.laci.android16_diyui;
import android.content.Context;
import android.graphics.Canvas;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
/**
* Created by Laci on 2017/7/8.
*/
public class MyButton extends View {
public MyButton(Context context) {
super(context);
}
public MyButton(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MyButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MyButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//单点触摸
//0按下 1抬起 2移动
int action=event.getAction();
//公式
//1.计算手指的下标
int pointIndex=action>>8;
//2.计算手指的行为
int action_code=action&0xff;
return true;
}
}
xml部分代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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="com.zking.laci.android16_diyui.MainActivity">
<com.zking.laci.android16_diyui.MyButton
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
再在MainActivity中调用:
package com.zking.laci.android16_diyui;
import
android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends
AppCompatActivity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}