本项目已为Android应用创建了完整的屏幕适配方案,采用**数值递增**的dp和sp定义方式,每个数值在不同屏幕密度下都有对应的适配值。
<dimen name="dp_1">1dp</dimen>
<dimen name="dp_2">2dp</dimen>
<dimen name="dp_3">3dp</dimen>
...
<dimen name="dp_100">100dp</dimen>
<dimen name="sp_10">10sp</dimen>
<dimen name="sp_11">11sp</dimen>
<dimen name="sp_12">12sp</dimen>
...
<dimen name="sp_50">50sp</dimen>
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_50"
android:textSize="@dimen/sp_16"
android:layout_margin="@dimen/dp_16"
android:padding="@dimen/dp_8" />
<Button
android:layout_width="match_parent"
android:layout_height="@dimen/dp_48"
android:textSize="@dimen/sp_14" />
// Kotlin
val buttonHeight = resources.getDimensionPixelSize(R.dimen.dp_48)
val textSize = resources.getDimension(R.dimen.sp_16)
val margin = resources.getDimensionPixelSize(R.dimen.dp_16)
// Java
int buttonHeight = getResources().getDimensionPixelSize(R.dimen.dp_48);
float textSize = getResources().getDimension(R.dimen.sp_16);
int margin = getResources().getDimensionPixelSize(R.dimen.dp_16);
| 密度/尺寸 | 比例 | 说明 |
|---|---|---|
| values (基准) | 1.0 | 标准尺寸 |
| values-small | 0.75 | 小屏幕缩小 |
| values-mdpi | 0.85 | 中密度略缩小 |
| values-hdpi | 1.0 | 高密度标准 |
| values-xhdpi | 1.1 | 超高密度放大 |
| values-xxhdpi | 1.2 | 超超高密度放大 |
| values-xxxhdpi | 1.3 | 超超超高密度放大 |
| values-sw600dp | 1.4 | 7寸平板放大 |
| values-sw720dp | 1.6 | 10寸平板放大 |
<!-- 在 values/dimens.xml 中添加语义化定义 -->
<dimen name="button_height_normal">@dimen/dp_48</dimen>
<dimen name="text_size_normal">@dimen/sp_14</dimen>
<dimen name="margin_normal">@dimen/dp_16</dimen>
<dimen name="padding_normal">@dimen/dp_12</dimen>
通过这套完整的数值递增适配方案,你的Android应用将能够在各种设备上实现精确的尺寸控制和一致的视觉效果!🎉