2012-03-09 18 views
13

Tôi đang thực hiện một AbstractAccountAuthenticator và tôi không thể tìm thấy bất kỳ thông tin liên quan đến kích thước của các biểu tượng smallIcon drawables yêu cầu.biểu tượng AccountAuthenticator

Có một SampleSyncAdapter đó là một bản demo mẫu cho thực hiện ở trên (Nó cũng chứng minh làm thế nào để thực hiện một AbstractThreadedSyncAdapter), nhưng nó chỉ xác định 1 tài nguyên drawable cho cả biểu tượngsmallIcon.

Có ai biết kích thước pixel chuẩn và yêu cầu cho cả hai tài nguyên này không?

+0

Điều này dường như phụ thuộc vào độ rộng màn hình, chứ không phải mật độ màn hình. Tôi đã đưa ra một số manh mối về điều này ở đây: [link] (http://www.digigene.com/android/accounts-in-android-part-two/) –

Trả lời

15

Đối với màn hình mật độ cao (drawable-hdpi):

  • smallIcon: 36x36 px
  • bình thường: 72x72 px

cho màn hình trung mật độ (drawable-mdpi):

  • smallIcon: 24x24 px
  • bình thường: 48x48 px

Một tài nguyên có thể kéo cho cả hai trong/drawable là tài nguyên có thể vẽ mặc định và được thiết kế cho kích thước màn hình bình thường và mật độ trung bình. Hệ thống cân đối các tài nguyên mật độ mặc định cho màn hình mật độ cao và xuống cho màn hình có mật độ thấp, vì vậy tốt hơn nếu bạn tạo thư mục cho hdpi và một thư mục khác cho mdpi với kích thước biểu tượng đã cho.

Hy vọng điều đó sẽ hữu ích.

+0

Bạn lấy thông tin này từ đâu? –

+0

Kiểm tra tệp authenticator.xml và kích thước biểu tượng (ic_exchange_selected, ic_exchange_minitab_selected) trong [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

Đối với mật độ màn hình khác (ldpi, xhdpi), bạn nên thực hiện theo tỷ lệ tỷ lệ 3: 4: 6: 8. Kiểm tra trong Android DevGuide [Alternative Drawables] (http://developer.android.com/guide/practices/screens_support.html) – CsaByte

0

Có một số sự không rõ ràng về sự khác biệt giữa iconsmallIcon. Android tuyên bố rằng cả hai đều đề cập đến biểu tượng ở bên trái của nhãn tài khoản (biểu tượng rô bốt android trong hình này), nhưng nơi sử dụng smallIcon thay vì icon tùy thuộc vào kích thước màn hình. Định nghĩa này dường như không được chính xác trong quan điểm về sự so sánh sau:

enter image description here

Trên đây so sánh biểu tượng và smallIcon trong hai thiết bị với độ rộng màn hình khác nhau. Từ hình, có vẻ như android sử dụng smallIcon cho trang Tài khoản (ảnh chụp màn hình bên trái trong hình trên). Biểu tượng lớn hơn chỉ được sử dụng cho trang hiển thị các tài khoản khác nhau của loại tài khoản (ảnh chụp màn hình bên phải) trong Chú giải 4, trong khi Nexus 5 hiển thị cùng kích thước biểu tượng cho cả hai màn hình. Do chiều rộng màn hình của Nexus 5 và Note 4 là 388 dp và 445 dp tương ứng, chiều rộng màn hình 400 dp có thể được đoán là một ngưỡng cho chiều rộng màn hình ở trên mà biểu tượng lớn hơn được áp dụng. Điều này là không chính xác, tuy nhiên. Tôi đã giải quyết chủ đề này cũng như toàn bộ chủ đề xác thực tài khoản android here

0

Theo sau được cung cấp bởi CsaByte tôi đã kết thúc với kích thước này cho biểu tượng Authenticator của mình.

mdpi

  • smallIcon: 24x24
  • biểu tượng: 48x48

hdpi

  • smallIcon: 36x36
  • biểu tượng: 72x72

xhdpi

  • smallIcon: 48x48
  • biểu tượng: 96x96

xxhdpi

  • sma llIcon: 72x72
  • biểu tượng: 144x144

xxxhdpi

  • smallIcon: 96x96
  • biểu tượng: 192x192

Đặt những drawables trong thư mục drawable-mật độ tương ứng của họ.

Sau đó, trong authenticator.xml bạn có thể đi với điều này:

<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" /> 

Kích thước biểu tượng giống như kích thước ic_launcher, nếu bạn không muốn không gian lãng phí trong ứng dụng của bạn và bạn không cần một biểu tượng tùy chỉnh đối với trình xác thực của bạn, bạn có thể sử dụng iciplauncher mipmap thay thế. Tệp authenticator.xml của bạn có thể được viết là:

<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" />