Androidstudio的该类中public class DrawView extends View 如何画一个五角星星
要在DrawView类中画一个五角星星,你可以重写onDraw()方法并在其中使用Path类来绘制五角星星的路径。以下是一个示例代码:
public class DrawView extends View {
private Paint paint;
public DrawView(Context context) {
super(context);
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
int centerX = width / 2;
int centerY = height / 2;
int radius = Math.min(width, height) / 2 - 10;
Path path = new Path();
float angle = (float) (Math.PI * 2 / 5);
float radiusInner = radius / 2.5f;
for (int i = 0; i < 5; i++) {
float x = (float) (centerX + radius * Math.cos(angle * i));
float y = (float) (centerY + radius * Math.sin(angle * i));
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}
float innerX = (float) (centerX + radiusInner * Math.cos(angle * i + angle / 2));
float innerY = (float) (centerY + radiusInner * Math.sin(angle * i + angle / 2));
path.lineTo(innerX, innerY);
}
path.close();
canvas.drawPath(path, paint);
}
}
在onDraw()方法中,我们首先获取了DrawView的宽度和高度,然后计算出五角星星的半径和内部小五角星的半径。接下来,我们使用Path类来构建五角星星的路径,然后使用canvas.drawPath()方法来绘制路径。
你可以在你的Activity中使用DrawView类,例如:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new DrawView(this));
}
}
这样,一个带有五角星星的DrawView将会显示在你的Activity中
原文地址: https://www.cveoy.top/t/topic/iT1i 著作权归作者所有。请勿转载和采集!