布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="hanyongguang1124.test.bwie.com.initcircel.Main2Activity"> <hanyongguang1124.test.bwie.com.initcircel.BoWenView android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
Main文件
package hanyongguang1124.test.bwie.com.initcircel; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); } }
控件文件
package hanyongguang1124.test.bwie.com.initcircel; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; /** * Created by Administrator on 2016/12/4. */ public class BoWenView extends View { private int width; private int height; private int x; private int y; public BoWenView(Context context) { super(context); } public BoWenView(Context context, AttributeSet attrs) { super(context, attrs); } public BoWenView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); width = this.getWidth(); height = this.getHeight(); x = width / 2; y = height / 2; //重新绘制方法 postInvalidate(); } @Override protected void onDraw(Canvas canvas) { Paint point = new Paint(); point.setColor(0xFF000000); canvas.drawCircle(x, y, 100, point); super.onDraw(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { double local = getLocal(event); if (local <= 100) { Toast.makeText(getContext(), "ssss", Toast.LENGTH_SHORT).show(); } return super.onTouchEvent(event); } private double getLocal(MotionEvent event) { double sqrt = Math.sqrt((event.getX() - x) * (event.getX() - x) + (event.getY() - y) * (event.getY() - y)); return sqrt; } }