LUCKY大转盘

<?xml version="1.0" encoding="utf-8"?>

<com.example.lx.week1lianxicao.dazhuanpan.MyCircle
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/cir"
    />


<ImageView
    android:layout_width="100dp"
    android:layout_height="100dp"
   android:layout_marginLeft="25dp"
    android:layout_marginTop="25dp"

    android:src="@mipmap/start"/>

package com.example.lx.week1lianxicao.dazhuanpan;

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.util.AttributeSet;
import android.view.View;
import android.view.animation.RotateAnimation;

/**

  • 自定义View
  • 1:onMeasure 测量
  • 2:onLayout 位置
  • 3:onDraw 绘制
  • Paint (画笔)和 Canvas(画布)

*/
public class MyCircle extends View implements View.OnClickListener {

private String[] contents = new String[]{"美 女", "女 神", "热 舞", "丰 满", "性 感", "知 性"};
public int[] colors = new int[]{Color.parseColor("#8EE5EE"), Color.parseColor("#FFD700"), Color.parseColor("#FFD39B"), Color.parseColor("#FF8247"), Color.parseColor("#FF34B3"), Color.parseColor("#F0E68C")};
private Paint mPaint;
private int mwidth;
public MyCircle(Context context, AttributeSet attrs) {
    super(context, attrs);

    mPaint = new Paint();//定义画笔用来绘制圆形
    setOnClickListener(this);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    mPaint.setColor(Color.BLUE);
    mPaint.setStyle(Paint.Style.STROKE);

    mPaint.setAntiAlias(true);//刮胡子
    mPaint.setStrokeWidth(3);//圆的厚度

    canvas.drawCircle(mwidth/2,mwidth/2,mwidth/2,mPaint);

    RectF rectF=new RectF(0,0,mwidth,mwidth);
    mPaint.setStyle(Paint.Style.FILL);
    for(int i=0;i<colors.length;i++){
        mPaint.setColor(colors[i]);
        int startjj=i*60;
        canvas.drawArc(rectF,startjj,60,true,mPaint);
    }
    mPaint.setColor(Color.RED);
    mPaint.setTextSize(30);
    for(int i=0;i<contents.length;i++){
        int startjj=i*60;
        Path path=new Path();
        path.addArc(rectF,startjj,60);
        canvas.drawTextOnPath(contents[i],path,50,50,mPaint);
    }
  
}

private void startAnima() {
    RotateAnimation   rnm=new RotateAnimation(0,360,mwidth/2,mwidth/2);
    rnm.setDuration(3000);
    rnm.setFillAfter(true);
    startAnimation(rnm);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(300,300);

    mwidth=getMeasuredWidth();
}

@Override
public void onClick(View v) {
    startAnima();
}

}

发布了33 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Zhangyz_521/article/details/84635936