Android 11 Configuraion属性简介

上文Android 11 系统修改无源码第三方应用的显示内容

说到的第三方应用适配中,通过修改Configuration对象的属性,实现修改第三方应用DPI

这篇文章进一步分析下Configuration类中的其他属性。

创建Configuration对象

Configuraion对象的实例化最终会走到setToDefaults()方法


frameworks/base/core/java/android/content/res/Configuration.java

public Configuration() {
    unset();
}

/**
 * Set this object to completely undefined.
 * @hide
 */
public void unset() {
    setToDefaults();
    fontScale = 0;
}

/**
 * Set this object to the system defaults.
 */
public void setToDefaults() {
    fontScale = 1;
    mcc = mnc = 0;
    mLocaleList = LocaleList.getEmptyLocaleList();
    locale = null;
    userSetLocale = false;
    touchscreen = TOUCHSCREEN_UNDEFINED;
    keyboard = KEYBOARD_UNDEFINED;
    keyboardHidden = KEYBOARDHIDDEN_UNDEFINED;
    hardKeyboardHidden = HARDKEYBOARDHIDDEN_UNDEFINED;
    navigation = NAVIGATION_UNDEFINED;
    navigationHidden = NAVIGATIONHIDDEN_UNDEFINED;
    orientation = ORIENTATION_UNDEFINED;
    screenLayout = SCREENLAYOUT_UNDEFINED;
    colorMode = COLOR_MODE_UNDEFINED;
    uiMode = UI_MODE_TYPE_UNDEFINED;
    screenWidthDp = compatScreenWidthDp = SCREEN_WIDTH_DP_UNDEFINED;
    screenHeightDp = compatScreenHeightDp = SCREEN_HEIGHT_DP_UNDEFINED;
    smallestScreenWidthDp = compatSmallestScreenWidthDp = SMALLEST_SCREEN_WIDTH_DP_UNDEFINED;
    densityDpi = DENSITY_DPI_UNDEFINED;
    assetsSeq = ASSETS_SEQ_UNDEFINED;
    seq = 0;
    windowConfiguration.setToDefaults();
}

Configuration类中的属性说明

根据setToDefaults方法,分析方法中重置的属性

以下是一些主要的属性以及它们的用途:

locale

表示用户设置的区域设置(例如,en_US 表示美国英语)

screenLayout

描述了屏幕的尺寸和方向,例如是否是长宽比较大的屏幕,或者是横屏还是竖屏

fontScale

用户设置的字体缩放比例,可以用于调整应用中文字的大小

orientation

设备的当前方向,比如横向或纵向

densityDpi

屏幕的像素密度,单位为 DPI(dots per inch)

keyboard

描述键盘的类型

keyboardHidden

描述键盘的可见性

mccmnc

移动国家码(MCC)和移动网络码(MNC),这些与用户的移动运营商相关

uiMode

表示用户界面模式,例如夜间模式

touchscreen

触摸屏类型

navigation

导航栏类型

navigationHidden

导航栏是否隐藏

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值