Android 绘制太极图
绘制一个太极图实现代码:
package com.jackie.taijicircle;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
/**
* Created by Administrator on 2016/11/14.
*/
public class TaijiCircleView extends View {
private Paint mPaint;
private int mWidth;
public TaijiCircleView(Context context) {
this(context, null);
}
public TaijiCircleView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TaijiCircleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initPaint();
}
private void initPaint() {
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(5);
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setStyle(Paint.Style.FILL);
}
private void drawCircle(Canvas canvas) {
mPaint.setColor(Color.BLACK);
//x轴正轴为0°
// canvas.drawArc(new RectF(0, 0, width, width), 90, 180, true, mPaint);
canvas.drawArc(new RectF(0, 0, mWidth, mWidth), 270, -180, true, mPaint);
mPaint.setColor(Color.WHITE);
// canvas.drawArc(new RectF(0, 0, width, width), 90, -180, true, mPaint);
canvas.drawArc(new RectF(0, 0, mWidth, mWidth), 270, 180, true, mPaint);
}
private void drawHalfCircle(Canvas canvas) {
mPaint.setColor(Color.BLACK);
canvas.drawArc(new RectF(mWidth / 4, 0, mWidth / 2 + mWidth / 4, mWidth / 2),
270, 180, true, mPaint);
mPaint.setColor(Color.WHITE);
canvas.drawArc(new RectF(mWidth / 4, mWidth / 2, mWidth / 2 + mWidth / 4, mWidth),
270, -180, true, mPaint);
}
private void drawSmallCircle(Canvas canvas) {
mPaint.setColor(Color.BLACK);
canvas.drawCircle(mWidth / 2, mWidth * 3 / 4, 20, mPaint);
mPaint.setColor(Color.WHITE);
canvas.drawCircle(mWidth / 2, mWidth / 4, 20, mPaint);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mWidth = Math.min(getWidth(), getHeight());
drawCircle(canvas);
drawHalfCircle(canvas);
drawSmallCircle(canvas);
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:Android 画一个太极图实例代码一看就懂的Android APP开发入门教程Android 动画之TranslateAnimation应用详解android压力测试命令monkey详解android PopupWindow 和 Activity弹出窗口实现方式android客户端从服务器端获取json数据并解析的实现代码Android 动画之ScaleAnimation应用详解android调试工具DDMS的使用详解解决Android SDK下载和更新失败的方法详解android listview优化几种写法详细介绍android Handler详细使用方法实例Android按钮单击事件的四种常用写法总结