//主页 点击小启动转盘
public class MainActivity extends AppCompatActivity {
CustomCircleView customCircleView;
private CustomBingView customBingView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customBingView = findViewById(R.id.bing);
findViewById(R.id.yuan).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float degrees = (float) (720+Math.random()*10000);
RotateAnimation rotateAnimation = new RotateAnimation(0,degrees,300,250);
rotateAnimation.setDuration(5000);
rotateAnimation.setFillAfter(true);
customBingView.startAnimation(rotateAnimation);
}
});
}
//主页布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.example.customcircleview2.CustomBingView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/bing"
/>
<com.example.customcircleview2.CustomCircleView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/yuan"
/>
<com.example.customcircleview2.CustomTextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout_editor_absoluteX="30dp"
tools:layout_editor_absoluteY="0dp" />
</android.support.constraint.ConstraintLayout>
//xiao圆
package com.example.customcircleview2;
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;
public class CustomCircleView extends View {
Paint mpaint;
RectF rectF;
float mStartAngle = 0 ;
public CustomCircleView(Context context) {
super(context);
init();
}
public CustomCircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init(){
mpaint = new Paint();
mpaint.setColor(Color.BLUE);
mpaint.setStrokeWidth(10);
mpaint.setTextSize(60);
mpaint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//canvas.drawRect(); 矩形
//canvas.drawArc(); 扇形
//canvas.drawCircle(); 圆形
//canvas.drawLine(); 线性\
mpaint.setColor(Color.BLACK);
Path path = new Path();
path.moveTo(300,140);
path.lineTo(220,250);
path.lineTo(380,250);
path.close();
canvas.drawPath(path,mpaint);
mpaint.setColor(Color.YELLOW);
canvas.drawCircle(300,250,80,mpaint);
}
}
//饼图
package com.example.customcircleview2;
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;
public class CustomCircleView extends View {
Paint mpaint;
RectF rectF;
float mStartAngle = 0 ;
public CustomCircleView(Context context) {
super(context);
init();
}
public CustomCircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init(){
mpaint = new Paint();
mpaint.setColor(Color.BLUE);
mpaint.setStrokeWidth(10);
mpaint.setTextSize(60);
mpaint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//canvas.drawRect(); 矩形
//canvas.drawArc(); 扇形
//canvas.drawCircle(); 圆形
//canvas.drawLine(); 线性\
mpaint.setColor(Color.BLACK);
Path path = new Path();
path.moveTo(300,140);
path.lineTo(220,250);
path.lineTo(380,250);
path.close();
canvas.drawPath(path,mpaint);
mpaint.setColor(Color.YELLOW);
canvas.drawCircle(300,250,80,mpaint);
}
}
//文字
package com.example.customcircleview2;
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;
public class CustomTextView extends View {
Paint mPaint;
public CustomTextView(Context context) {
super(context);
init();
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.RED);
mPaint.setStrokeWidth(10);
mPaint.setTextSize(60);
mPaint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
RectF rectF = new RectF();
rectF.top = 100;
rectF.bottom = 400;
rectF.right = 450;
rectF.left = 150;
mPaint.setColor(Color.GREEN);
canvas.drawText("GO",260,275,mPaint);
}
}