栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

安卓7.1默认显示大小

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安卓7.1默认显示大小

设置–显示–显示大小调节
packages/apps/Settings/src/com/android/settings/display/ScreenZoomSettings.java +48

*/
public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment implements Indexable {

private int mDefaultDensity;
private int[] mValues;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mActivityLayoutResId = R.layout.screen_zoom_activity;

    // This should be replaced once the final preview sample screen is in place.
    mPreviewSampleResIds = new int[]{R.layout.screen_zoom_preview_1,
            R.layout.screen_zoom_preview_2,
            R.layout.screen_zoom_preview_settings};

    final DisplayDensityUtils density = new DisplayDensityUtils(getContext());

    final int initialIndex = density.getCurrentIndex();  这里打印实际的值,把该值写进framework默认
    if (initialIndex < 0) {
        // Failed to obtain default density, which means we failed to
        // connect to the window manager service. Just use the current
        // density and don't let the user change anything.
        final int densityDpi = getResources().getDisplayMetrics().densityDpi;
        mValues = new int[] { densityDpi };

frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java +240
public static void setForcedDisplayDensity(final int displayId, final int density) {
final int userId = UserHandle.myUserId();
AsyncTask.execute(() -> {
try {
final IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
wm.setForcedDisplayDensityForUser(displayId, density, userId);
} catch (RemoteException exc) {
Log.w(LOG_TAG, “Unable to save forced display density setting”);
}
});
}
}
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java +9870
@Override
public void setForcedDisplayDensityForUser(int displayId, int density, int userId) {
if (mContext.checkCallingOrSelfPermission(
android.Manifest.permission.WRITE_SECURE_SETTINGS) !=
PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Must hold permission " +
android.Manifest.permission.WRITE_SECURE_SETTINGS);
}
if (displayId != Display.DEFAULT_DISPLAY) {
throw new IllegalArgumentException(“Can only set the default display”);
}

    final int targetUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
            Binder.getCallingUid(), userId, false, true, "setForcedDisplayDensityForUser",
            null);
    final long ident = Binder.clearCallingIdentity();
    try {
        synchronized(mWindowMap) {
            final DisplayContent displayContent = getDisplayContentLocked(displayId);
            if (displayContent != null && mCurrentUserId == targetUserId) {
                setForcedDisplayDensityLocked(displayContent, density);
            }
            Settings.Secure.putStringForUser(mContext.getContentResolver(),
                    Settings.Secure.DISPLAY_DENSITY_FORCED,
                    Integer.toString(density), targetUserId);
        }
    } finally {
        Binder.restoreCallingIdentity(ident);
    }
}
Index: frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

— frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java (revision 311)
+++ frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java (working copy)
@@ -7433,6 +7433,7 @@
+ " from " + mRotation + (mAltOrientation ? " (alt)" : “”)
+ “, lastOrientation=” + mLastOrientation);
}

  •    rotation = Surface.ROTATION_0;
       mRotation = rotation;
       mAltOrientation = altOrientation;
    

@@ -9935,16 +9936,17 @@
private int getForcedDisplayDensityForUserLocked(int userId) {
String densityStr = Settings.Secure.getStringForUser(mContext.getContentResolver(),
Settings.Secure.DISPLAY_DENSITY_FORCED, userId);

  •   Log.i("fan","get DISPLAY_DENSITY_FORCED="+densityStr);
       if (densityStr == null || densityStr.length() == 0) {
           densityStr = SystemProperties.get(DENSITY_OVERRIDE, null);
       }
       if (densityStr != null && densityStr.length() > 0) {
           try {
    
  •            return Integer.parseInt(densityStr);
    
  • return 212;//Integer.parseInt(densityStr); 默认
    } catch (NumberFormatException ex) {
    }
    }
  •    return 0;
    
  •    return 212; 默认
    
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号