Files
maidong-ktv/app/build.gradle
T
zijunchiang 0c7aa46458 V1.3.6: 「调音」与「扫码点歌」弹窗分辨率自适应
问题: 两个弹窗都用固定 dp 尺寸 + WRAP_CONTENT 高度, 在矮屏(720p@1.5≈480dp 高、
1080p@2.0≈960dp 等)上会被屏幕裁掉, 底部内容(频段滑杆/二维码说明)看不到。

修复:
- 新增通用 helper fitDialogToScreen(dialog, scroll, content, preferredWidthDp):
  宽度 = min(首选, 屏幕宽*0.94); 高度不再用 WRAP_CONTENT, 而是把内容所在的 ScrollView
  限制为 屏幕高*0.92 - 弹窗标题/按钮框架高度。先按最终宽度量一次内容原始高度,
  放得下就紧凑显示, 放不下就在弹窗内滚动 —— 任何分辨率下都不会被裁切。
- 调音弹窗: 按屏幕高度算出内容预算, 把剩余空间给 EQ 频段区并夹在 112~216dp,
  同时矮屏(高度<620dp)压缩刻度区宽度/标签/预设行高度; 输出自适应日志便于现场核对。
- 扫码点歌弹窗: 二维码边长按 屏幕高*0.42 / 屏宽*0.62 自适应并夹在 160~220(矮屏)/280dp,
  位图按最终显示尺寸生成保证清晰; 文案宽度改为 MATCH_PARENT, 内容包进 ScrollView。
- 声音设置弹窗同样接入该 helper(同一类裁切风险)。

版本号 1.3.5 -> 1.3.6(versionCode 11 -> 12)。按约定本次不发布 Release, 仅本地打包测试。
2026-09-20 15:51:52 +08:00

96 lines
2.9 KiB
Groovy

plugins {
id "com.android.application"
id "org.jetbrains.kotlin.android"
}
android {
namespace "com.local.ktv"
compileSdk 35
defaultConfig {
applicationId "com.local.ktv"
minSdk 21
targetSdk 25
versionCode 12
versionName "1.3.6"
ndk {
// 双 ABI 打包:兼容 64 位(Exynos 1580 等 arm64-v8a)与 32 位设备(极米 Play 超越版
// 的 Amlogic 950X2/S905X2 采用 32 位 Android 用户态,必须包含 armeabi-v7a,否则
// 会出现 INSTALL_FAILED_NO_MATCHING_ABIS 安装失败)。
// Package each ABI's complete IJK set; never mix individual SOs across the two sets.
abiFilters "armeabi-v7a", "arm64-v8a"
}
// 曲库已改为官方 Muse 同步(database_publish 不再发布到 Gitee),
// 不再需要 GITEE_DATABASE_* 构建参数。
}
// 签名配置:使用已有的 ktv_keystore.jks
signingConfigs {
release {
storeFile file("../../ktv_keystore.jks")
storePassword "123456"
keyAlias "ktv"
keyPassword "123456"
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
applicationIdSuffix ".qa"
}
}
// 支持 .ts 视频文件(aapt 不压缩这些文件以避免 SoundPool/MediaPlayer 问题)
androidResources {
noCompress 'ts', 'mp3', 'mp4', 'aac', 'm4a', 'flac', 'wav'
}
// 关闭发布构建的 lint vital 检查(本地分发的 APK 不需要 Google Play 上架要求)
lint {
checkReleaseBuilds false
abortOnError false
}
// 启用 BuildConfig 生成,供 AboutFragment 读取版本号/版本Code等信息
buildFeatures {
buildConfig = true
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
}
// 强制统一 Kotlin 标准库版本,避免 appcompat 与其他依赖的版本冲突
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:1.8.22"
force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22"
force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22"
force "org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22"
}
}
dependencies {
implementation files('libs/original-ijk-runtime.jar')
implementation "androidx.core:core:1.12.0"
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "com.google.zxing:core:3.5.3"
implementation "com.liulishuo.okdownload:okdownload:1.0.7"
testImplementation "junit:junit:4.13.2"
}