2012-03-09 12 views
13

Jestem wykonawczych do AbstractAccountAuthenticator i nie mogę znaleźć żadnych informacji na temat wymiarów ikonęi smallIcon kanału alfa wymagane.ikony AccountAuthenticator

Jest SampleSyncAdapter który jest demo przykładowy realizacji powyższych (pokazuje również, jak wdrożyć AbstractThreadedSyncAdapter), ale to tylko 1 definiuje zasób rozciągliwej zarówno ikonę i smallIcon.

Czy ktoś zna standardowe i wymagane rozmiary pikseli dla obu tych zasobów?

+0

Wydaje się, że zależy to od szerokości ekranu, a nie od gęstości ekranu. Dałem kilka wskazówek na ten temat: [link] (http://www.digigene.com/android/accounts-in-android-part-two/) –

Odpowiedz

15

przypadku ekranów o wysokiej gęstości (odkształcalny-hdpi):

  • smallIcon: 36x36 px
  • normalne: 72x72 px

dla ekranów o średniej gęstości (tłoczliwa, MDPI)

  • smallIcon: 24x24 px
  • normalny: 48x48 px

Jednym z możliwych do losowania zasobami dla obu opcji jest domyślny zasób do rysowania. Został zaprojektowany z myślą o normalnym rozmiarze ekranu i średniej gęstości. System skaluje domyślne zasoby gęstości do ekranów o wysokiej gęstości i obniża ekrany o niskiej gęstości, więc lepiej jest zrobić katalog dla hdpi, a drugi dla mdpi z danym rozmiarem ikon.

Nadzieję, że pomaga.

+0

Skąd masz te informacje? –

+0

Sprawdź plik authentator.xml i rozmiar ikon (ic_exchange_selected, ic_exchange_minitab_selected) w [FROYO-QRD-GB-DSDS-7225] (https://www.codeaurora.org/git/projects/qrd-gb-dsds-7225/repository /revisions/0c15e6aa7e51b42c5c0977389ffa5372c95ccb29/entry/packages/apps/Email/res/xml/authenticator.xml) – CsaByte

+1

Aby uzyskać inne nasycenie ekranu (ldpi, xhdpi), należy zastosować współczynnik skalowania 3: 4: 6: 8. Sprawdź to w Android DevGuide [Alternative Drawables] (http://developer.android.com/guide/practices/screens_support.html) – CsaByte

0

Istnieje pewna niejednoznaczność dotycząca różnicy między icon i smallIcon. Android deklaruje, że oba odnoszą się do ikony znajdującej się po lewej stronie etykiety konta (ikona robota Android na tym rysunku), ale w przypadku użycia zamiast nazwy zależy od rozmiaru ekranu. Definicja ta nie wydaje się być dokładny w związku z następującym stosunku:

enter image description here

Powyższy porównuje ikonę i smallIcon w dwóch urządzeń o różnych szerokościach ekranem. Z rysunku wynika, że ​​android używa smallIcon na stronie Accounts (lewy zrzut ekranu na powyższym obrazku). Większa ikona jest używana tylko dla strony pokazującej różne konta typu konta (prawy zrzut ekranu) w uwadze 4, podczas gdy Nexus 5 wyświetla taki sam rozmiar ikon dla obu ekranów. Ponieważ szerokości ekranu Nexusa 5 i Note 4 wynoszą odpowiednio 388 dp i 445 dp, szerokość ekranu 400 dp można odgadnąć jako próg dla szerokości ekranu, powyżej której stosowana jest większa ikona. To jednak nie jest dokładne. Odniosłem się do tego tematu, a także do całego tematu uwierzytelniania konta androida: here

0

Zgodnie ze specyfikacją dostarczoną przez CsaByte, otrzymałem te rozmiary dla moich ikon Authenticator.

MDPI

  • smallIcon: 24x24
  • ikona: 48x48

hdpi

  • smallIcon: 36x36
  • ikona: 72x72

xhdpi

  • smallIcon: 48x48
  • ikoną: 96x96

xxhdpi

  • SMA llIcon: 72x72
  • ikona: 144x144

xxxhdpi

  • smallIcon: 96x96
  • ikona: 192x192

Put tych kanału alfa w ich odpowiednim folderze odkształcalne gęstości.

Następnie w authenticator.xml można iść z tym:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:label="@string/app_name" 
    android:icon="@drawable/icon" 
    android:smallIcon="@drawable/smallIcon" /> 

Wielkość ikona jest taka sama jak ic_launcher rozmiarów, jeśli nie chcesz przestrzeń odpadów wewnątrz aplikacji i nie trzeba niestandardową ikonę dla swojego wystawcy uwierzytelnienia możesz użyć mipmapa ic_launchera. Plik authentator.xml można zapisać jako:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:label="@string/app_name" 
    android:icon="@mipmap/ic_launcher" 
    android:smallIcon="@drawable/smallIcon" />