Androidstudio我想在屏幕上显示一个时钟模型怎么使用ImageView或者自定义View来实现呢?
要在屏幕上显示一个时钟模型,你可以使用自定义View来实现。下面是一个简单的示例代码:
首先,创建一个名为ClockView的自定义View类,并继承自View类:
public class ClockView extends View {
private Paint paint;
private int width, height;
public ClockView(Context context) {
super(context);
init();
}
public ClockView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public ClockView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5);
paint.setAntiAlias(true);
Calendar calendar = Calendar.getInstance();
width = calendar.get(Calendar.HOUR_OF_DAY) * 60 + calendar.get(Calendar.MINUTE);
height = 100;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int centerX = getWidth() / 2;
int centerY = getHeight() / 2;
// 绘制表盘
canvas.drawCircle(centerX, centerY, height / 2, paint);
// 绘制时钟指针
float angle = (float) (2 * Math.PI * width / (12 * 60));
float handX = (float) (centerX + (height / 2 - 20) * Math.sin(angle));
float handY = (float) (centerY - (height / 2 - 20) * Math.cos(angle));
canvas.drawLine(centerX, centerY, handX, handY, paint);
}
}
然后,在你的Activity布局文件中,使用ClockView作为一个自定义View:
<com.example.yourpackage.ClockView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
最后,在你的Activity中,找到ClockView并设置时间:
ClockView clockView = findViewById(R.id.clockView);
clockView.setTime(hour, minute); // 设置当前时间
这样,你就可以在屏幕上显示一个时钟模型了。在onDraw方法中,我们使用Canvas绘制表盘和时钟指针。你可以根据自己的需求修改绘制的样式和位置
原文地址: http://www.cveoy.top/t/topic/iZiO 著作权归作者所有。请勿转载和采集!