Java Code Examples for android.view.Display#Mode
The following examples show how to use
android.view.Display#Mode .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DisplayCapabilities.java From Detect-Resolution with Creative Commons Zero v1.0 Universal | 6 votes |
public String getSupportedResolutions() { String allSupportedResolutions = ""; Set<Integer> supportedResolutions = new LinkedHashSet<Integer>(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Display.Mode[] modes = mWindowManager.getDefaultDisplay().getSupportedModes(); for (Display.Mode mode : modes) { supportedResolutions.add(mode.getPhysicalWidth()); } if (supportedResolutions.size() > 1) { for (int i : supportedResolutions) { if (!allSupportedResolutions.equals("")) { allSupportedResolutions += ", "; } allSupportedResolutions = allSupportedResolutions + i + "p"; } } if (!allSupportedResolutions.equals("")) { allSupportedResolutions = " (" + allSupportedResolutions + ")"; } } return allSupportedResolutions; }
Example 2
Source File: DisplayCapabilities.java From Detect-Resolution with Creative Commons Zero v1.0 Universal | 6 votes |
public String getSupportedRefreshRates() { String allSupportedRefreshRates = ""; Set<Float> supportedRefreshRates = new LinkedHashSet<Float>(); DecimalFormat df = new DecimalFormat("###.###"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Display.Mode[] modes = mWindowManager.getDefaultDisplay().getSupportedModes(); for (Display.Mode mode : modes) { supportedRefreshRates.add(mode.getRefreshRate()); } if (supportedRefreshRates.size() > 1) { for (float i : supportedRefreshRates) { if (!allSupportedRefreshRates.equals("")) { allSupportedRefreshRates += ", "; } allSupportedRefreshRates = allSupportedRefreshRates + df.format(i); } } if (!allSupportedRefreshRates.equals("")) { allSupportedRefreshRates = " (" + allSupportedRefreshRates + ")"; } } return allSupportedRefreshRates; }
Example 3
Source File: OverlayDisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
public OverlayDisplayDevice(IBinder displayToken, String name, List<OverlayMode> modes, int activeMode, int defaultMode, float refreshRate, long presentationDeadlineNanos, boolean secure, int state, SurfaceTexture surfaceTexture, int number) { super(OverlayDisplayAdapter.this, displayToken, UNIQUE_ID_PREFIX + number); mName = name; mRefreshRate = refreshRate; mDisplayPresentationDeadlineNanos = presentationDeadlineNanos; mSecure = secure; mState = state; mSurfaceTexture = surfaceTexture; mRawModes = modes; mModes = new Display.Mode[modes.size()]; for (int i = 0; i < modes.size(); i++) { OverlayMode mode = modes.get(i); mModes[i] = createMode(mode.mWidth, mode.mHeight, refreshRate); } mActiveMode = activeMode; mDefaultMode = defaultMode; }
Example 4
Source File: WifiDisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Override public DisplayDeviceInfo getDisplayDeviceInfoLocked() { if (mInfo == null) { mInfo = new DisplayDeviceInfo(); mInfo.name = mName; mInfo.uniqueId = getUniqueId(); mInfo.width = mWidth; mInfo.height = mHeight; mInfo.modeId = mMode.getModeId(); mInfo.defaultModeId = mMode.getModeId(); mInfo.supportedModes = new Display.Mode[] { mMode }; mInfo.presentationDeadlineNanos = 1000000000L / (int) mRefreshRate; // 1 frame mInfo.flags = mFlags; mInfo.type = Display.TYPE_WIFI; mInfo.address = mAddress; mInfo.touch = DisplayDeviceInfo.TOUCH_EXTERNAL; mInfo.setAssumedDensityForExternalDisplay(mWidth, mHeight); } return mInfo; }
Example 5
Source File: PlaybackController.java From jellyfin-androidtv with GNU General Public License v2.0 | 6 votes |
@TargetApi(23) private void setRefreshRate(MediaStream videoStream) { if (videoStream == null) { Timber.e("Null video stream attempting to set refresh rate"); return; } Display.Mode current = mApplication.getCurrentActivity().getWindowManager().getDefaultDisplay().getMode(); Display.Mode best = findBestDisplayMode(videoStream.getRealFrameRate()); if (best != null) { Timber.i("*** Best refresh mode is: %s/%s",best.getModeId(), best.getRefreshRate()); if (current.getModeId() != best.getModeId()) { Timber.i("*** Attempting to change refresh rate from %s/%s",current.getModeId(), current.getRefreshRate()); WindowManager.LayoutParams params = mApplication.getCurrentActivity().getWindow().getAttributes(); params.preferredDisplayModeId = best.getModeId(); mApplication.getCurrentActivity().getWindow().setAttributes(params); } else { Timber.i("Display is already in best mode"); } } else { Timber.i("*** Unable to find display mode for refresh rate: %s",videoStream.getRealFrameRate()); } }
Example 6
Source File: OverlayDisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Override public DisplayDeviceInfo getDisplayDeviceInfoLocked() { if (mInfo == null) { Display.Mode mode = mModes[mActiveMode]; OverlayMode rawMode = mRawModes.get(mActiveMode); mInfo = new DisplayDeviceInfo(); mInfo.name = mName; mInfo.uniqueId = getUniqueId(); mInfo.width = mode.getPhysicalWidth(); mInfo.height = mode.getPhysicalHeight(); mInfo.modeId = mode.getModeId(); mInfo.defaultModeId = mModes[0].getModeId(); mInfo.supportedModes = mModes; mInfo.densityDpi = rawMode.mDensityDpi; mInfo.xDpi = rawMode.mDensityDpi; mInfo.yDpi = rawMode.mDensityDpi; mInfo.presentationDeadlineNanos = mDisplayPresentationDeadlineNanos + 1000000000L / (int) mRefreshRate; // display's deadline + 1 frame mInfo.flags = DisplayDeviceInfo.FLAG_PRESENTATION; if (mSecure) { mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE; } mInfo.type = Display.TYPE_OVERLAY; mInfo.touch = DisplayDeviceInfo.TOUCH_NONE; mInfo.state = mState; } return mInfo; }
Example 7
Source File: ScreenUtils.java From leanback-extensions with Apache License 2.0 | 5 votes |
@RequiresApi(api = Build.VERSION_CODES.M) private static void getDisplaySizeV23(@NonNull final Display display, @NonNull final Point outSize) { /* Still not worth enabling 4K, but that's where video modes can be checked. */ Display.Mode[] modes = display.getSupportedModes(); if (modes != null && modes.length > 0) { Display.Mode mode = modes[0]; outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); } else { display.getRealSize(outSize); } }
Example 8
Source File: PlaybackController.java From jellyfin-androidtv with GNU General Public License v2.0 | 5 votes |
@TargetApi(23) private void getDisplayModes() { Display display = mApplication.getCurrentActivity().getWindowManager().getDefaultDisplay(); mDisplayModes = display.getSupportedModes(); Timber.i("** Available display refresh rates:"); for (Display.Mode mDisplayMode : mDisplayModes) { Timber.i("%f", mDisplayMode.getRefreshRate()); } }
Example 9
Source File: PlaybackController.java From jellyfin-androidtv with GNU General Public License v2.0 | 5 votes |
@TargetApi(23) private Display.Mode findBestDisplayMode(Float refreshRate) { if (mDisplayModes == null || refreshRate == null) return null; int sourceRate = Math.round(refreshRate); for (Display.Mode mode : mDisplayModes){ int rate = Math.round(mode.getRefreshRate()); if (rate == sourceRate || rate == sourceRate * 2) return mode; } return null; }
Example 10
Source File: Util.java From Telegram with GNU General Public License v2.0 | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 11
Source File: Util.java From MediaSDK with Apache License 2.0 | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 12
Source File: Util.java From Telegram-FOSS with GNU General Public License v2.0 | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 13
Source File: Util.java From K-Sonic with MIT License | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 14
Source File: Util.java From TelePlus-Android with GNU General Public License v2.0 | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 15
Source File: Util.java From TelePlus-Android with GNU General Public License v2.0 | 4 votes |
@TargetApi(23) private static void getDisplaySizeV23(Display display, Point outSize) { Display.Mode mode = display.getMode(); outSize.x = mode.getPhysicalWidth(); outSize.y = mode.getPhysicalHeight(); }
Example 16
Source File: VirtualDisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
@Override public DisplayDeviceInfo getDisplayDeviceInfoLocked() { if (mInfo == null) { mInfo = new DisplayDeviceInfo(); mInfo.name = mName; mInfo.uniqueId = getUniqueId(); mInfo.width = mWidth; mInfo.height = mHeight; mInfo.modeId = mMode.getModeId(); mInfo.defaultModeId = mMode.getModeId(); mInfo.supportedModes = new Display.Mode[] { mMode }; mInfo.densityDpi = mDensityDpi; mInfo.xDpi = mDensityDpi; mInfo.yDpi = mDensityDpi; mInfo.presentationDeadlineNanos = 1000000000L / (int) REFRESH_RATE; // 1 frame mInfo.flags = 0; if ((mFlags & VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE | DisplayDeviceInfo.FLAG_NEVER_BLANK; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) { mInfo.flags &= ~DisplayDeviceInfo.FLAG_NEVER_BLANK; } else { mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_SECURE) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_PRESENTATION) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_PRESENTATION; if ((mFlags & VIRTUAL_DISPLAY_FLAG_PUBLIC) != 0) { // For demonstration purposes, allow rotation of the external display. // In the future we might allow the user to configure this directly. if ("portrait".equals(SystemProperties.get( "persist.demo.remoterotation"))) { mInfo.rotation = Surface.ROTATION_270; } } } if ((mFlags & VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_ROTATES_WITH_CONTENT) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_DESTROY_CONTENT_ON_REMOVAL; } mInfo.type = Display.TYPE_VIRTUAL; mInfo.touch = ((mFlags & VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH) == 0) ? DisplayDeviceInfo.TOUCH_NONE : DisplayDeviceInfo.TOUCH_VIRTUAL; mInfo.state = mSurface != null ? Display.STATE_ON : Display.STATE_OFF; mInfo.ownerUid = mOwnerUid; mInfo.ownerPackageName = mOwnerPackageName; } return mInfo; }
Example 17
Source File: DisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
public static Display.Mode createMode(int width, int height, float refreshRate) { return new Display.Mode( NEXT_DISPLAY_MODE_ID.getAndIncrement(), width, height, refreshRate); }
Example 18
Source File: LocalDisplayAdapter.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
@Override public DisplayDeviceInfo getDisplayDeviceInfoLocked() { if (mInfo == null) { SurfaceControl.PhysicalDisplayInfo phys = mDisplayInfos[mActivePhysIndex]; mInfo = new DisplayDeviceInfo(); mInfo.width = phys.width; mInfo.height = phys.height; mInfo.modeId = mActiveModeId; mInfo.defaultModeId = mDefaultModeId; mInfo.supportedModes = new Display.Mode[mSupportedModes.size()]; for (int i = 0; i < mSupportedModes.size(); i++) { DisplayModeRecord record = mSupportedModes.valueAt(i); mInfo.supportedModes[i] = record.mMode; } mInfo.colorMode = mActiveColorMode; mInfo.supportedColorModes = new int[mSupportedColorModes.size()]; for (int i = 0; i < mSupportedColorModes.size(); i++) { mInfo.supportedColorModes[i] = mSupportedColorModes.get(i); } mInfo.hdrCapabilities = mHdrCapabilities; mInfo.appVsyncOffsetNanos = phys.appVsyncOffsetNanos; mInfo.presentationDeadlineNanos = phys.presentationDeadlineNanos; mInfo.state = mState; mInfo.uniqueId = getUniqueId(); // Assume that all built-in displays that have secure output (eg. HDCP) also // support compositing from gralloc protected buffers. if (phys.secure) { mInfo.flags = DisplayDeviceInfo.FLAG_SECURE | DisplayDeviceInfo.FLAG_SUPPORTS_PROTECTED_BUFFERS; } final Resources res = getOverlayContext().getResources(); if (mBuiltInDisplayId == SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN) { mInfo.name = res.getString( com.android.internal.R.string.display_manager_built_in_display_name); mInfo.flags |= DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY | DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT; if (res.getBoolean(com.android.internal.R.bool.config_mainBuiltInDisplayIsRound) || (Build.IS_EMULATOR && SystemProperties.getBoolean(PROPERTY_EMULATOR_CIRCULAR, false))) { mInfo.flags |= DisplayDeviceInfo.FLAG_ROUND; } if (res.getBoolean( com.android.internal.R.bool.config_maskMainBuiltInDisplayCutout)) { mInfo.flags |= DisplayDeviceInfo.FLAG_MASK_DISPLAY_CUTOUT; } mInfo.displayCutout = DisplayCutout.fromResourcesRectApproximation(res, mInfo.width, mInfo.height); mInfo.type = Display.TYPE_BUILT_IN; mInfo.densityDpi = (int)(phys.density * 160 + 0.5f); mInfo.xDpi = phys.xDpi; mInfo.yDpi = phys.yDpi; mInfo.touch = DisplayDeviceInfo.TOUCH_INTERNAL; } else { mInfo.displayCutout = null; mInfo.type = Display.TYPE_HDMI; mInfo.flags |= DisplayDeviceInfo.FLAG_PRESENTATION; mInfo.name = getContext().getResources().getString( com.android.internal.R.string.display_manager_hdmi_display_name); mInfo.touch = DisplayDeviceInfo.TOUCH_EXTERNAL; mInfo.setAssumedDensityForExternalDisplay(phys.width, phys.height); // For demonstration purposes, allow rotation of the external display. // In the future we might allow the user to configure this directly. if ("portrait".equals(SystemProperties.get("persist.demo.hdmirotation"))) { mInfo.rotation = Surface.ROTATION_270; } // For demonstration purposes, allow rotation of the external display // to follow the built-in display. if (SystemProperties.getBoolean("persist.demo.hdmirotates", false)) { mInfo.flags |= DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT; } if (!res.getBoolean( com.android.internal.R.bool.config_localDisplaysMirrorContent)) { mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY; } if (res.getBoolean(com.android.internal.R.bool.config_localDisplaysPrivate)) { mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE; } } } return mInfo; }