Android 开发培训进阶 | mRadius = (float) (Math.min(mWidth, mHeight) / 2 * 0.8) 的问题

问题描述

我正在学习高级 android 课程,更具体地说是在这个 codelab https://developer.android.com/codelabs/advanced-android-training-custom-view-from-scratch?index=..%2F..advanced-android-training#2

我不明白为什么以这种形式计算半径,我不明白他们如何计算半径。为什么这个公式中有一个 0.8:

mRadius = (float) (Math.min(mWidth,mHeight) / 2 * 0.8)

非常感谢!

解决方法

本例中的 0.8 定义了圆形应覆盖设备的多少可用空间。

我认为这是使用示例最简单的解释。假设我们的画布宽度是 400 像素,高度是 640 像素。由于 400 较小,因此计算结果为:

mRadius = (float) (400/2)

这将导致半径为 200,因此圆将覆盖所有可用宽度。 (因为公式中有虚数*1)

在本教程中,圆圈应该有一个边距。设置(括号只是为了清楚起见)

mRadius = (float) ((400/2) * 0.8)

将导致半径(和圆)仅覆盖可用空间的 80%。