activity_main.xml页面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.g160628_18_widget.MainActivity"> <com.example.g160628_18_widget.MyButton android:layout_width="300dp" android:layout_height="300dp" /> </LinearLayout>
package com.example.g160628_18_widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; /** * Created by Administrator on 2017/7/8 0008. */ 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); } /** * @param canvas 画布 */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.RED); //实例化路径 Path path = new Path(); path.moveTo(100, 100); path.lineTo(300, 100); path.lineTo(150, 300); path.lineTo(200, 50); path.lineTo(250, 300); path.lineTo(100, 100); //实例化一个画笔 Paint paint = new Paint(); paint.setColor(Color.GREEN); //画路径 canvas.drawPath(path, paint); } }