Android项目SP与DP误用修复:批量修正单位问题
批量修正Android布局单位:保留文本SP,其他属性改回DP
核心方案:利用IDE正则批量替换
Android Studio(或IntelliJ)的全局正则替换功能可以精准处理这个问题,无需手动逐个修改文件:
打开全局查找替换
使用快捷键Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(Mac),切换到「Regex」模式。配置正则规则
- 查找内容:
(?!android:textSize|app:textSize)(android:.*?|app:.*?|layout_.*?)\s*=\s*"(\d+)sp" - 替换内容:
$1="$2dp"
- 查找内容:
规则说明
(?!android:textSize|app:textSize):负向前瞻,确保不会匹配文本尺寸属性(避免把textSize的sp改成dp)(android:.*?|app:.*?|layout_.*?):匹配所有系统属性、自定义app前缀属性、布局类属性(如layout_width、paddingLeft等)\s*=\s*"(\d+)sp":捕获属性值中的数字部分,匹配带sp单位的数值
验证与执行
先点击「Find All」预览所有匹配项,确认没有误修改textSize相关属性后,再点击「Replace All」完成批量修正。适配自定义文本属性
如果项目中有自定义View的文本尺寸属性(如custom:textSize),只需把属性名添加到负向前瞻的排除列表中,修改后的查找正则:(?!android:textSize|app:textSize|custom:textSize)(android:.*?|app:.*?|layout_.*?|custom:.*?)\s*=\s*"(\d+)sp"
内容的提问来源于stack exchange,提问作者JD_Dark_Pheonix
相关产品推荐
相关产品推荐

