You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在显示大小改为大/小时禁用应用缩放?已尝试android:resizeableActivity无效

解决应用随系统显示大小调整的问题

首先得澄清一个关键误区:你设置的android:resizeableActivity="false"其实是用来禁止应用进入分屏/多窗口模式的,和阻止系统显示大小/字体大小缩放完全无关——这就是为什么这个设置没起作用的核心原因!

下面是针对“让应用不随系统显示大小调整”的有效解决方案:

方案1:全局强制固定缩放比例(推荐)

在自定义Application类的onCreate方法中添加代码,全局锁定应用的缩放比例为1.0(即不受系统设置影响):

Java版本

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Configuration config = getResources().getConfiguration();
        // 强制字体缩放比例为1.0,屏蔽系统显示大小调整的影响
        config.fontScale = 1.0f;
        // 更新配置使设置生效
        getResources().updateConfiguration(config, getResources().getDisplayMetrics());
    }
}

Kotlin版本

class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        val config = resources.configuration
        config.fontScale = 1.0f
        resources.updateConfiguration(config, resources.displayMetrics)
    }
}

记得在AndroidManifest.xml的<application>标签中指定这个自定义Application类:

<application
    android:name=".MyApp"
    ...>
    ...
</application>

方案2:针对单个Activity设置

如果你只想让特定Activity不受系统显示大小影响,可以在该Activity的onCreate方法中添加同样的缩放锁定代码:

Java版本

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Configuration config = getResources().getConfiguration();
    config.fontScale = 1.0f;
    getResources().updateConfiguration(config, getResources().getDisplayMetrics());
    setContentView(R.layout.activity_main);
}

方案3:处理配置变化避免Activity重启

为了防止系统在显示大小变化时重启Activity,你可以在AndroidManifest.xml的目标Activity标签中添加configChanges属性,让系统通知配置变化而非重启:

<activity
    android:name=".MainActivity"
    android:configChanges="fontScale|smallestScreenSize|screenSize|orientation">
    ...
</activity>

然后在Activity中重写onConfigurationChanged方法,再次锁定缩放比例:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // 重新锁定缩放比例,防止系统设置生效
    newConfig.fontScale = 1.0f;
    getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
}

注意事项

  • 部分厂商的自定义系统(如MIUI、EMUI)可能有额外的显示缩放机制,如果上述方案无效,可以尝试在应用内提供“跟随系统显示大小”的开关,针对性适配厂商特性。
  • 锁定缩放比例可能会影响部分用户的无障碍体验,建议在应用内保留可选项,让用户自主选择是否开启固定显示大小。

内容的提问来源于stack exchange,提问作者SportyAndroidDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:35:52