Maschera di visualizzazioneDisplay Mask

Rappresenta l'area di visualizzazione non funzionale alla visualizzazione del contenuto.Represents the area of the display that is not functional for displaying content.

Le API in Surface Duo SDK interagiscono con il dispositivo Surface Duo e non devono essere chiamate quando l'app è in esecuzione in altri dispositivi.APIs in the Surface Duo SDK interact with the Surface Duo device, and should not be called when your app is running on other devices. Prima di chiamare le API, verifica che l'app sia in esecuzione in un dispositivo Surface Duo.Before calling these APIs, you should check whether your app is running on a Surface Duo device. Per eseguire questa verifica, usa il frammento di codice IsDualScreenDevice.Use the IsDualScreenDevice code snippet to perform this check.

Importante

A partire dall'aggiornamento di anteprima dell'SDK del 20 febbraio 2020, l'API DisplayMask presenta le modifiche seguenti.Starting with the 02-20-2020 SDK Preview update, the DisplayMask API has the following changes.

L'API DisplayMask è stata aggiornata per restituire un rettangolo delimitatore rispetto alle metriche di visualizzazione in base al contesto dell'app.DisplayMask has been updated to return a bounding rectangle relative to the display metrics based on the app context. Questa modifica influisce sul comportamento dell'API quando l'app è in esecuzione su un singolo schermo rispetto a quando è in esecuzione in forma estesa su due schermi.This affects how the API behaves when your app is running on a single screen vs. running spanned across two screens. Un servizio che comporta la creazione di una vista, ad un certo punto rientrerà in una di queste due categorie.(A service that created a view at any point will fall into one of these two categories.)

  • Esecuzione su un singolo schermo:When running on a single screen:

    • Le finestre e le metriche di visualizzazione sono in relazione con la visualizzazione singola.Windows and display metrics are in relation to that single display.
    • L'API DisplayMask restituisce un elenco vuoto,The DisplayMask returns an empty list. che non si interseca con la finestra.It will not intersect with the window.
  • Esecuzione in forma estesa su due schermi:When running spanned across two screens:

    • Le finestre e le metriche di visualizzazione sono in relazione con entrambe le visualizzazioni, inclusa la maschera di visualizzazione.Window and display metrics are in relation to both displays, including the display mask.
    • Il rettangolo delimitatore di DisplayMask identificherà l'area della cerniera dell'hardware in rapporto alla finestra dell'app (DisplayMask = rettangolo della maschera della cerniera).The DisplayMask bounding rectangle will identify the area under the hardware hinge in relation to the app window (DisplayMask = hinge mask rectangle).

    Per altre informazioni, vedi il blog di Surface Duo.For more info, see the Surface Duo Blog.

import com.microsoft.device.display.DisplayMask;

MetodiMethods

Metodi staticiStatic methods

MetodoMethod DescriptionDescription
fromResourcesRect(Context context)fromResourcesRect(Context context) Crea la maschera di visualizzazione in base a config_mainBuiltInDisplayMaskRect.Creates the display mask according to config_mainBuiltInDisplayMaskRect.
fromResourcesRectApproximation(Context context)fromResourcesRectApproximation(Context context) Crea la maschera di visualizzazione in base a config_mainBuiltInDisplayMaskRectApproximation, che è la migliore approssimazione al rettangolo della maschera.Creates the display mask according to config_mainBuiltInDisplayMaskRectApproximation, which is the closest rectangle-base approximation of the mask.

Metodi di oggettoObject methods

MetodoMethod DescriptionDescription
getBoundingRects()getBoundingRects() Restituisce un elenco di oggetti Rect, ciascuno dei quali rappresenta il rettangolo delimitatore di un'area non funzionale sullo schermo.Returns a list of Rects, each of which is the bounding rectangle for a non-functional area on the display.
getBoundingRectsForRotation(int rotation)getBoundingRectsForRotation(int rotation) Restituisce un elenco di oggetti Rect rispetto alla rotazione, ciascuno dei quali rappresenta il rettangolo delimitatore di un'area non funzionale sullo schermo.Returns a list of Rects with respect to the rotation, each of which is the bounding rectangle for a non-functional area on the display.
getBounds()getBounds() Restituisce l'area di delimitazione della maschera.Returns the bounding region of the mask.

EsempioExample

Per ottenere il rettangolo di una maschera di visualizzazioneGetting a display mask rect

DisplayMask displayMask = DisplayMask.fromResourcesRect(context);

List<Rect> masks = displayMask.getBoundingRectsForRotation(rotation);
Rect mask = new Rect();
if(!masks.isEmpty()) {
    mask = masks.get(0);
}

Metodi pubbliciPublic methods

fromResourcesRectfromResourcesRect

public static DisplayMask fromResourcesRect(Context context)

Crea la maschera di visualizzazione in base a config_mainBuiltInDisplayMaskRect.Creates the display mask according to config_mainBuiltInDisplayMaskRect.

ParametriParameters

Context contextContext context

Contesto per l'attività corrente.A context for the current activity.

RisultatiReturns

DisplayMask

Nuova maschera di visualizzazione.The new display mask.

fromResourcesRectApproximationfromResourcesRectApproximation

public static DisplayMask fromResourcesRectApproximation(Context context)

Crea la maschera di visualizzazione in base a config_mainBuiltInDisplayMaskRectApproximation, che è la migliore approssimazione al rettangolo della maschera.Creates the display mask according to config_mainBuiltInDisplayMaskRectApproximation, which is the closest rectangle-base approximation of the mask.

ParametriParameters

Context contextContext context

Contesto per l'attività corrente.A context for the current activity.

RisultatiReturns

DisplayMask

Nuova maschera di visualizzazione.The new display mask.

getBoundingRectsgetBoundingRects

public List<Rect> getBoundingRects()

Restituisce un elenco di oggetti Rect, ciascuno dei quali rappresenta il rettangolo delimitatore di un'area non funzionale sullo schermo.Returns a list of Rects, each of which is the bounding rectangle for a non-functional area on the display.

RisultatiReturns

List<Rect>

Elenco di oggetti Rect di delimitazione, uno per ogni area della maschera di visualizzazione.A list of bounding Rects, one for each display mask area.

getBoundingRectsForRotationgetBoundingRectsForRotation

public List<Rect> getBoundingRectsForRotation(int rotation)

Restituisce un elenco di oggetti Rect rispetto alla rotazione, ciascuno dei quali rappresenta il rettangolo delimitatore di un'area non funzionale sullo schermo.Returns a list of Rects with respect to the rotation, each of which is the bounding rectangle for a non-functional area on the display.

ParametriParameters

int rotationint rotation

La maschera di rotazione viene ruotata.The rotation mask should rotate. I valori possibili sono Surface.ROTATION_0, Surface.ROTATION_90, Surface.ROTATION_180 e Surface.ROTATION_270.Possible values are Surface.ROTATION_0, Surface.ROTATION_90, Surface.ROTATION_180, Surface.ROTATION_270

RisultatiReturns

List<Rect>

Elenco di oggetti Rect di delimitazione, uno per ogni area della maschera di visualizzazione.A list of bounding Rects, one for each display mask area.

getBoundsgetBounds

public Region getBounds()

Restituisce l'area di delimitazione della maschera.Returns the bounding region of the mask.

Possono essere presenti più maschere, in questo caso l'oggetto Region restituito sarà non contiguo e il relativo rettangolo delimitatore non sarà significativo se prima non interseca l'oggetto.There may be more than one mask, in which case the returned Region will be non-contiguous and its bounding rect will be meaningless without intersecting it first.

RisultatiReturns

Region

Area di delimitazione della maschera.The bounding region of the mask. Le coordinate sono relative all'angolo superiore sinistro della visualizzazione contenuto ed espresse in unità pixel.Coordinates are relative to the top-left corner of the content view and in pixel units.