太极
package bwie.com.zidongyi.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; /** * Created by lenovo on 2017/12/27. */ public class TaiJi extends View{ public TaiJi(Context context) { super(context); } public TaiJi(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public TaiJi(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStrokeWidth(5); paint.setStyle(Paint.Style.FILL); RectF leftRectF = new RectF(100, 100, 500, 500); paint.setColor(Color.WHITE); canvas.drawArc(leftRectF, 90, 180, false, paint); paint.setStyle(Paint.Style.STROKE); paint.setColor(Color.BLACK); canvas.drawArc(leftRectF, 90, 180, false, paint); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL_AND_STROKE); RectF rightRectF = new RectF(100, 100, 500, 500); canvas.drawArc(rightRectF, -90, 180, false, paint); RectF upRectF = new RectF(200, 100, 400, 300); canvas.drawArc(upRectF, 90, 180, false, paint); paint.setColor(Color.WHITE); RectF downRectF = new RectF(200, 300, 400, 500); canvas.drawArc(downRectF, -90, 180, false, paint); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); canvas.drawArc(downRectF, -90, 180, false, paint); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.WHITE); canvas.drawCircle(300, 200, 20, paint); paint.setColor(Color.BLACK); canvas.drawCircle(300, 400, 20, paint); } }五角星
package bwie.com.zidongyi.view; 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 lenovo on 2017/12/27. */ public class WuJiaoXing extends View{ public WuJiaoXing(Context context) { super(context); } public WuJiaoXing(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public WuJiaoXing(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setColor(Color.YELLOW); paint.setStrokeWidth(1); Path path = new Path(); path.moveTo(103,49); path.lineTo(141,164);//第一个脚 最上面的 path.lineTo(43,92);//第二个脚 右下角的 path.lineTo(164,92);//第三个脚 左面的 path.lineTo(66,164);//第四个脚 右面的 path.lineTo(103,49);//第五个脚 左下的 canvas.drawPath(path,paint); } }五星红旗
package bwie.com.zidongyi.view; 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 lenovo on 2017/12/27. */ public class WuXingHongQi extends View{ public WuXingHongQi(Context context) { super(context); } public WuXingHongQi(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public WuXingHongQi(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //定义画笔 Paint paint = new Paint(); paint.setColor(Color.YELLOW); paint.setStrokeWidth(1);//线的宽度 //定义路径 Path path = new Path(); //最大的星星 path.moveTo(103,49); path.lineTo(141,164);//第一个脚 最上面的 path.lineTo(43,92);//第二个脚 右下角的 path.lineTo(164,92);//第三个脚 左面的 path.lineTo(66,164);//第四个脚 右面的 path.lineTo(103,49);//第五个脚 左下的 canvas.drawPath(path,paint); //第一个小星星 path.moveTo(186,61); path.lineTo(216,26); path.lineTo(214,72); path.lineTo(189,33); path.lineTo(231,50); path.lineTo(186,61); canvas.drawPath(path,paint); //第二个小星星 path.moveTo(228,96); path.lineTo(269,76); path.lineTo(247,117); path.lineTo(241,71); path.lineTo(273,104); path.lineTo(244,99); canvas.drawPath(path,paint); //第三个小星星 path.moveTo(224,148); path.lineTo(273,148); path.lineTo(236,175); path.lineTo(249,131); path.lineTo(265,175); path.lineTo(224,148); canvas.drawPath(path,paint); //第四个小星星 path.moveTo(189,182); path.lineTo(231,199); path.lineTo(186,211); path.lineTo(216,175); path.lineTo(213,221); path.lineTo(189,182); canvas.drawPath(path,paint); } }触摸移动
package bwie.com.zidongyi.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; /** * Created by lenovo on 2017/12/27. */ public class YiDong extends View { private float cx = 100; private float cy = 100; public YiDong(Context context) { super(context); } public YiDong(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public YiDong(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setColor(Color.RED); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL); canvas.drawCircle(cx,cy,100,paint); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN://按下 cx = event.getX(); cy = event.getY(); break; case MotionEvent.ACTION_MOVE://移动 cx = event.getX(); cy = event.getY(); break; case MotionEvent.ACTION_UP://抬起 cx = event.getX(); cy = event.getY(); break; } //需要重新绘制一下图形 //invalidate();//但是只能在主线程进行图形的绘制 postInvalidate();//主线程和子线程都可以....调用这两个方法的时候,会自动调用onDraw方法 //触摸事件自己处理 return true; } }