package com.example.app_bingtu_work;
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;
import org.w3c.dom.Text;
public class BingTuCustomView extends View {
private Paint paint;
private RectF rectF;
private RectF rectF1;
float ZE_RO = 0;
private int[] colors = new int[]{
Color.parseColor("#FF8247"),
Color.parseColor("#ccff44"),
Color.parseColor("#44ff44"),
Color.parseColor("#ff44ff"),
Color.parseColor("#FF00FF"),
Color.parseColor("#00BFFF")
};
private String[] strings = new String[]{
"赵 军 辉","魏 志 远","邵 文 龙","李 博 文","刘 洋 洋","魏 开 心"
};
public BingTuCustomView(Context context) {
super(context);
initData();
}
public BingTuCustomView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initData();
}
private void initData() {
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(10);
rectF = new RectF();
rectF.top = 100;
rectF.left = 100;
rectF.right = 400;
rectF.bottom = 400;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int measuredWidth = getMeasuredWidth();
rectF1 =new RectF(0,0,measuredWidth,measuredWidth);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for(int i=0;i<6;i++)
{
canvas.drawArc(rectF,ZE_RO,60,true,paint);
paint.setColor(colors[i]);
Path path = new Path();
paint.setTextSize(25);
path.addArc(rectF1,(i-1)*60+60,60);
canvas.drawTextOnPath(strings[i],path,50,130,paint);
ZE_RO+=60;
}
}
}
package com.example.app_bingtu_work;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
public class BingTuInsideView extends View {
private Paint paint;
private RectF rectF;
public BingTuInsideView(Context context) {
super(context);
initData();
}
public BingTuInsideView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initData();
}
private void initData() {
paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(20);
paint.setStyle(Paint.Style.FILL);
rectF = new RectF();
rectF.top = 150;
rectF.bottom = 250;
rectF.left = 220;
rectF.right = 280;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.BLACK);
canvas.drawArc(rectF,60,60,true,paint);
paint.setColor(Color.RED);
canvas.drawCircle(250,250,30,paint);
paint.setColor(Color.WHITE);
canvas.drawText("开始",230,260,paint);
}
}
package com.example.app_bingtu_work;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.RotateAnimation;
import com.example.app_work_two.R;
public class BingTuActivity extends AppCompatActivity {
private BingTuCustomView bingTuCustomView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.binttu_activity);
bingTuCustomView = findViewById(R.id.custom);
findViewById(R.id.inside_custom).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float degrees = (float) (720 + Math.random() * 5000);
RotateAnimation rotateAnimation = new RotateAnimation(0,degrees,250,250);
rotateAnimation.setDuration(5000);
rotateAnimation.setFillAfter(true);
bingTuCustomView.startAnimation(rotateAnimation);
}
});
}
}