# Android 屏幕适配方案说明
## 概述
本项目已为Android应用创建了完整的屏幕适配方案,采用**数值递增**的dp和sp定义方式,每个数值在不同屏幕密度下都有对应的适配值。
## 📁 已创建的适配文件
### 1. 基础适配
- **values/dimens.xml** - 标准屏幕适配(基准)
### 2. 屏幕尺寸适配
- **values-small/dimens.xml** - 小屏幕设备适配(按0.75比例)
### 3. 屏幕密度适配
- **values-mdpi/dimens.xml** - 160dpi(按0.85比例)
- **values-hdpi/dimens.xml** - 240dpi(标准1:1比例)
- **values-xhdpi/dimens.xml** - 320dpi(按1.1比例)
- **values-xxhdpi/dimens.xml** - 480dpi(按1.2比例)
- **values-xxxhdpi/dimens.xml** - 640dpi(按1.3比例)
### 4. 平板设备适配
- **values-sw600dp/dimens.xml** - 7寸平板(按1.4比例)
- **values-sw720dp/dimens.xml** - 10寸平板(按1.6比例)
## 📏 资源定义规范
### DP尺寸定义(1dp-100dp)
```xml
1dp
2dp
3dp
...
100dp
```
### SP文字尺寸定义(10sp-50sp)
```xml
10sp
11sp
12sp
...
50sp
```
## 🚀 使用方法
### 在布局文件中使用
```xml
```
### 在代码中使用
```kotlin
// 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
// 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寸平板放大 |
## 💡 使用建议
1. **统一使用**: 在项目中统一使用这套尺寸定义,避免硬编码数值
2. **语义命名**: 可以在此基础上定义语义化的尺寸别名
3. **设计配合**: 与UI设计师协调,使用标准化的尺寸规范
4. **测试验证**: 在不同设备上测试界面效果
## 🔧 扩展使用示例
### 定义语义化别名
```xml
@dimen/dp_48
@dimen/sp_14
@dimen/dp_16
@dimen/dp_12
```
### 常用组合建议
- **小间距**: dp_4, dp_8
- **正常间距**: dp_12, dp_16
- **大间距**: dp_24, dp_32
- **按钮高度**: dp_40, dp_48, dp_56
- **文字大小**: sp_12, sp_14, sp_16, sp_18
通过这套完整的数值递增适配方案,你的Android应用将能够在各种设备上实现精确的尺寸控制和一致的视觉效果!🎉