Windows 8 si apre ad una varietà di device come tablet, PC e TV, con dimensioni e risoluzioni dello schermo molto diverse tra loro.
Mentre questa varietà non è un problema per immagini vettoriali o elementi XAML, che si possono adattare dinamicamente senza perdita di qualità, nel caso di immagini BMP queste hanno dimensioni ben precise e lasciare che vengano adattate automaticamente può generare artefatti inattesi o scarsa visibilità.
Poichè in Windows 8 è stata fatta grande cura all'usabilità complessiva, questo scenario è stato gestito nativamente in WinRT il quale, a fronte di una immagine, cerca autonomamente la presenza di un file corrispondente ai DPI del sistema operativo, per mostrarla in alternativa all'immagine di base, solitamente a 96dpi.
Per sfruttare questa funzionalità dobbiamo rispettare una serie di convenzioni dei nomi dei file.
Le proporzioni di riferimento sono quattro: 80, 100, 140 e 180.
- 100: corrisponde alle risoluzioni di base (normal DPI) come 1024x768px e 1366x768px;
- 140: risoluzioni HD 1920x1080px;
- 180: oltre HD, come 2560x1440px;
- 80: solo per logo, wideLogo e smallLogo;
A ciascuna proporzione corrisponde un suffisso scale-* da aggiungere al nome del file; prendiamo ad esempio winrtitalia.png, per ognuna di esse dovremo creare i seguenti file di immagine:
- winrtitalia.scale-100.png;
- winrtitalia.scale-140.png
- winrtitalia.scale-180.png
- winrtitalia.scale-80.png (ma solo in caso sia uno dei tre logo per l'app)
Dobbiamo considerare le immagini 140, 180 e 80 come le dimensioni in percentuali dell'immagine 100, quindi se tale immagine di base fosse 100x100px la relativa 180 sarà di 180x180px.
Comunque, sia nel codice che nel markup, dobbiamo sempre riferirci a winrtitalia.png con le modalità di cui abbiamo parlato nello script #6, l'accesso al file specifico avviene in modo trasparente.
Per migliorare la qualità complessiva delle immagini è consigliato che queste abbiano dimensioni in multiplio di 5 pixel.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
.NET Conference Italia 2024
Utilizzare i primary constructor di C# per inizializzare le proprietà
Il nuovo controllo Range di Blazor 9
Ordinare randomicamente una lista in C#
Creare gruppi di client per Event Grid MQTT
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Disabilitare automaticamente un workflow di GitHub
Usare lo spread operator con i collection initializer in C#
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Criptare la comunicazione con mTLS in Azure Container Apps
Effettuare il refresh dei dati di una QuickGrid di Blazor
I più letti di oggi
- Tutorial Entity Framework 6
- Tutorial Entity Framework
- Tutorial HTML5
- RT @aspitalia Partecipa al nostro evento #RCD4, fai un RT e sarai estratto per 1 copia di #sl3guidacompleta! http://u.aspitalia.com/bw
- Migliorare l'organizzazione delle risorse con Azure Policy
- Configurare più site su unico web role di Windows Azure
- Windows Phone 8 Developer Day - Milano
- ReBuild 2020 Live - Online
- ASPItalia.com Network: si aggiungono LINQItalia.com e SilverlightItalia.com
- Rilasciata la versione 1.0 di ASP.NET MVC