android 11源码实现动态改变smallest-width
时间: 2023-12-21 17:05:22 浏览: 153
smallest-width
在Android 11中,可以通过以下步骤动态地改变smallest-width:
1. 获取当前设备的Configuration对象:
```java
Configuration config = getResources().getConfiguration();
```
2. 创建一个新的DisplayMetrics对象,并设置新的smallest-width:
```java
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
config.smallestScreenWidthDp = (int)(metrics.widthPixels/metrics.density);
```
3. 更新Configuration对象:
```java
getResources().updateConfiguration(config, getResources().getDisplayMetrics());
```
4. 重启Activity以使更改生效:
```java
recreate();
```
通过以上步骤,就可以动态地改变smallest-width了。注意,这个更改只对当前Activity生效,如果需要更改整个应用程序的smallest-width,需要在每个Activity中重复以上步骤。
阅读全文