Android studio制作旋转直线
时间: 2023-11-24 13:08:21 浏览: 63
你可以使用Android中的Canvas类来绘制旋转直线。以下是一个简单的示例代码:
```
public class MainActivity extends AppCompatActivity {
private CustomView customView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customView = findViewById(R.id.customView);
}
}
class CustomView extends View {
private Paint paint;
private float angle = 0;
private float length = 300;
private float cx, cy;
public CustomView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
cx = getWidth() / 2;
cy = getHeight() / 2;
canvas.save();
canvas.rotate(angle, cx, cy);
canvas.drawLine(cx, cy - length / 2, cx, cy + length / 2, paint);
canvas.restore();
angle += 1;
if (angle >= 360) {
angle = 0;
}
invalidate();
}
}
```
在这个示例中,我们使用自定义视图 `CustomView` 来绘制旋转直线。我们首先在构造函数中初始化画笔并设置其属性。在 `onDraw()` 方法中,我们首先计算出直线的起点和终点坐标,然后使用 `canvas.save()` 方法保存当前画布状态,调用 `canvas.rotate()` 方法旋转画布,绘制直线,最后使用 `canvas.restore()` 方法恢复画布状态。
在 `onDraw()` 方法的后面,我们将 `angle` 增加 1,然后使用 `invalidate()` 方法请求重绘视图,以便下一帧可以绘制旋转直线。
阅读全文