Android <com.android.internal.R$dimen> has no zero argument c
时间: 2024-04-22 07:27:20 浏览: 14
这个错误通常是由于在布局文件或代码中引用了非公开的系统资源,而这些资源需要使用 `android.R` 或自定义资源来引用。为了解决这个问题,您可以尝试以下几个步骤:
1. 检查您的代码和布局文件中是否引用了非公开的系统资源,如 `com.android.internal.R`。
2. 确保您的应用程序的 `minSdkVersion` 和 `targetSdkVersion` 版本与您使用的系统资源兼容。
3. 尝试清除您的项目并重新构建它。
4. 如果您使用了某些第三方库,可以尝试更新它们来解决这个问题。
如果上述方法都不能解决问题,您可能需要进一步查看日志和调试信息来找出问题所在。
相关问题
android 中如何通过代码使用 <dimen> 标签的尺寸
在 Android 中,你可以通过代码使用 `<dimen>` 标签定义的尺寸值。
首先,在 `res/values/` 目录下的 `dimens.xml` 文件中定义你的尺寸值。例如:
```xml
<resources>
<dimen name="my_dimension">16dp</dimen>
</resources>
```
然后,你可以在代码中使用 `getDimension()` 或 `getDimensionPixelSize()` 方法来获取这个尺寸值。
1. `getDimension()` 方法返回一个浮点数,表示尺寸值的像素数。如果 `<dimen>` 标签中定义的是一个复杂的尺寸,例如 `10dp`,它会根据设备的密度进行缩放。
2. `getDimensionPixelSize()` 方法返回一个整数,表示尺寸值的像素数。它会自动将尺寸值舍入到最接近的整数,并且不会对尺寸进行缩放。
以下是使用示例:
```java
float dimension = getResources().getDimension(R.dimen.my_dimension);
int dimensionPixels = getResources().getDimensionPixelSize(R.dimen.my_dimension);
```
在上面的示例中,`R.dimen.my_dimension` 是你在 `dimens.xml` 文件中定义的尺寸值的引用。`dimension` 变量会得到尺寸值的浮点数表示,而 `dimensionPixels` 变量会得到尺寸值的整数表示。你可以根据需要选择使用哪种方法来获取尺寸值。
resources.getIdentifier("status_bar_height", "dimen", "android")
这段代码是用于获取 Android 设备状态栏的高度。其中 `resources` 是一个 `Context` 对象,调用 `getIdentifier()` 方法可以根据资源的名称、类型、包名等信息获取到资源的唯一标识符。具体来说,这里指定了资源名称为 `"status_bar_height"`,类型为 `"dimen"`,包名为 `"android"`,这样就可以获取到状态栏高度对应的资源标识符。获取到资源标识符之后,可以通过调用 `getDimensionPixelSize()` 方法获取对应的像素值,即状态栏的高度。