kuvan lähde

Androidin värienhallinta: mitä kehittäjien ja suunnittelijoiden on tiedettävä

Äskettäisessä Oreo-julkaisussa Android sai alkuperäisen tuen värienhallinnalle - mikä auttaa sovittamaan värien tulokset laitteisiin. Päivityksen myötä Android-laitteet voivat nyt näyttää värejä sRGB-värivalikoiman ulkopuolella. Jos et tunne väriprofiileja tai mitä laaja värivalikoima on, suosittelen tätä Google I / O: n videota värin ymmärtämiseksi:

TL, dw; värinhallinta varmistaa, että värit näyttävät samoilta eri näytöillä. Esimerkiksi väri # ff0000 (puhdas punainen niille, jotka eivät lue heksakoodeja) voi näyttää eri tavalla riippuen näytön tekniikasta, joka sitä näyttää - jotkut näytöt kykenevät näyttämään enemmän tyydyttyneitä tai voimakkaampia värejä kuin toiset. Sanomalla # ff0000 sRGB: ssä, määritetään tietty punainen sävy (sRGB-väriavaruudessa), jotta värinhallitut näytöt voivat tuottaa tarkan halutun värin.

Tässä viestissä haluaisin esitellä, mitä Android-sovellusten suunnittelijoiden ja kehittäjien on tiedettävä näistä muutoksista.

Näyttää laajan värivalikoiman kuvia

Kuvat voivat upottaa väriprofiilin, ilmoittaen väritietojensa väriavaruuden. Samoin monet kamerat kykenevät kaappaamaan laajoja värivalikoimia ja upottamaan sopivan väriprofiilin. Tämän avulla he voivat näyttää värejä tavallisen sRGB-alueen ulkopuolella. Jotta voit näyttää kuvia, joissa on laaja väriprofiili sovelluksessasi, sinun on otettava käyttöön toimintokohtaisesti. Aseta tämä määrittämällä colorMode -attribuutti toiminnan ilmoitukseen sovelluksesi manifestissa:

Voit myös asettaa tämän ohjelmallisesti, mutta se on tehtävä onCreate-toiminnon aikana ennen ikkunan luomista. Laaja värimaalatuki on opt-in, koska se vaatii enemmän järjestelmäresursseja (mikä saattaa johtaa sovelluksesi suorituskyvyn heikkenemiseen):

”Kun laaja värimuoto on käytössä, aktiviteetin ikkuna käyttää enemmän muistia ja GPU-prosessointia näytön koostumukseen. Ennen laajan värivalikoiman käyttöönottoa sinun tulee harkita huolellisesti, hyötyykö aktiviteetti siitä todella. Esimerkiksi aktiviteetti, joka näyttää valokuvia koko näytössä, on hyvä ehdokas laajaan värimuotoon, mutta toiminta, joka näyttää pieniä pikkukuvia, ei ole. ”- kehittäjän dokumentaatio

Huomaa, että jos käytät yhtä toimintoarkkitehtuuria, voi olla järkevää hajottaa laaja värivalikoiman näyttö uudeksi toimintoksi.

Tässä on esimerkki kahdesta toiminnosta, joissa näytetään sama laaja värivalikoimatesti (PNG, johon on upotettu Näytön P3-väriprofiili). Ylätoiminto ilmoittaa laajan värivalikoiman väritilan, alaosa ei.

Toimintojen, joissa näytetään laaja värivalikoima, on oltava laaja väritila (yläosa)

Värien tarkka renderöinti

Monissa Android-laitteissa on jo jonkin aikaa ollut näyttöjä, jotka pystyvät näyttämään laajemmat värivalikoimat. Ennen Android 8.0: n värinhallintaa kaiken sisällön oletettiin olevan sRGB, mutta laajat värinäytöt tulkitsisivat väriarvot uudelleen niiden toiminta-alueeseen ja “venyttävät” värejä tehokkaasti. Tämä tekee punaisista punaisempia, vihreät enemmän vihreitä jne., Mikä johtaa tyydyttyneempaan ulkonäköön. Tämä venytys on kuitenkin epätarkka eikä venytysvaikutusta ole mahdollista laskea, joten renderoidut värit eivät ole tarkkoja.

Monet sovellukset ovat poistaneet omaisuudensa tämän venytyksen kompensoimiseksi. Seurauksena voi olla, että värit voivat olla mykistettyinä, kun niitä näytetään kalibroiduilla näytöillä varustetuissa laitteissa. Toisin sanoen väritarkkoissa laitteissa, kuten Pixel 2, tyydyttymättömät varat näkyvät vähemmän eloisina kuin ei-tarkkoissa näytöissä. Kun väritarkka renderöinti on laajalle levinnyttä, sovellusvalmistajat voivat lopettaa sisältöjen muuttamisen ja olla varmoja, että niiden sisältö näyttää tarkoitetulla tavalla. Siihen saakka on joitain vaiheita, jotka voit suorittaa varmistaaksesi, että sisältösi näyttää hyvältä sekä väritarkkoilla näytöillä että muilla kuin värienhallitsemilla laitteilla.

Android 8.0 lisää uuden laajakuvaresurssiluokittelijan, jota voit käyttää värien muuttamiseen laitteissa, joiden näytöllä on laaja värivalikoima ja laaja värivalikoiman jakaminen on tuettu (myös käänteinen nowidecg).

Huomaa, että laaja värivalikoiman tuki eroaa siitä, kulkevatko nykyiset toiminnot wideColorGamut-väritilassa. Tämä on tämä tarkentaja, jos laite tukee värien tarkkaa renderointia riippumatta siitä, suoritetaanko aktiviteettia laajassa väritilassa.

Esimerkiksi sovellus voi julistaa perusväripaletin res / arvot / värit.xml: ssä:


 # 5bc3cc 
 # 302c54 
 # c7416b 
 # e37b5b 
 # ffd64f 

… Ja vaihtoehtoinen sarja res / arvot-widecg / colors.xml:


 # 36c1cd 
 # 251f55 
 # c8144e 
 # e4572e 
 # ffc914 
Anna eri värejä käytettäväksi värien tarkkuudessa (vasen) ja vanhemmissa laitteissa

Voit käyttää samaa tekniikkaa rasteriresurssien kanssa (esim. Res / Drawing-widecg-mdpi / foo.png), mutta tämä vaatii läheisten kopioiden lähettämisen, joten sovelluksen koon kasvattaminen ei välttämättä ole kaupan arvoinen. Harkitse siirtymistä vektoriesineisiin, jotka voidaan värittää dynaamisesti.

Laajampi tuki tulee

Vaikka ilmoitimme äskettäin suunnitelmasta lisätä uusi ”tyydyttynyt” väritila, jonka avulla käyttäjät voivat poiketa väritarkasta renderoinnista (eli toimia kuin nowidecg-laitteet), uskon silti, että on tärkeää päivittää sovelluksesi värihallittuun maailmaan. Päivittämällä sovelluksesi paremmin tukemaan värien tarkkuutta. Vähemmän käyttäjiä tuntee olevan tarpeen poistua tästä tilasta. Aiomme jatkaa sijoittamista laajaväritukeen; lisäämällä enemmän API-pintaa työskentelemään laajoilla värivalikoimilla tulevaisuuden julkaisuissa (kuten päivitetyt Paint- ja Canvas-sovellusliittymät, jotka hyväksyvät värit suuremmalla bitti tarkkuudella).

Nykyaikaisten näyttöjen todellisuus on, että suunnittelijoilla ja kehittäjillä on nyt oltava ymmärrys värienhallinnasta ja siitä, kuinka sitä soveltaa sovelluksessaan. Kun yhä useammat laitteet toimitetaan laajakuvanäytöllä ja värien tarkalla renderoinnilla, on tärkeää päästä eteenpäin ja päivittää sovelluksesi parhaan käyttökokemuksen tarjoamiseksi. Mielestämme tämä on paras tapa tarjota loistava kokemus käyttäjillesi, joissa heidän näkemänsä värit ovat haluamasi.

Aiheeseen liittyvä käsittely

  • Erinomainen pohjaväri värienhallinnalle
  • Laaja värisisällön opas
  • Android ColorSpace -dokumentaatio, yleiset tuetut väritilat
  • Instagram-kokemus laajojen värien käyttöönotosta iOS: ssä
  • Värinhallinnan merkitys