Lock.Android UI のルック&フィールはカスタマイズできます。ヘッダーロゴやタイトルなどの各種項目に加え、一部の色、ボタン、そのほかの要素もアプリケーションのテーマに合わせて変更できます。
まず、Lock.Theme を継承した新しい Theme を作成し、カスタマイズする属性をオーバーライドします。オーバーライドしていない属性には、Lock.Theme で定義されている値が既定で適用されます。
新しいテーマを使用するには、AndroidManifest.xml ファイルで android:theme 属性を指定して Activity を設定します。Classic Lock と Lock のどちらを使用しているかによって、更新する Activity の宣言は異なります。Lock ライブラリではこれらの Activity が内部的に宣言されているため、テーマ属性だけをライブラリの宣言より優先させる特別な tools:replace` 属性を使って、これらの Activity を再宣言する必要があります。
スタイルリソースファイルで独自のテーマを定義する場合は、テーマの親に Lock.Theme を指定し忘れたり、Activity に適用するテーマをマニフェストで指定し忘れたりすると、UIの見た目が著しく損なわれる可能性があります。これは、カスタムテーマで指定した値が無効な場合にも発生することがあります。
サードパーティの接続のスタイルをカスタマイズするには、Custom Social Connections extension を使用して新しい接続を作成し、変更を保存する前に必須フィールドをすべて入力する必要があります。
Lock でサードパーティの IDプロバイダー接続のスタイルをカスタマイズするには、builder を呼び出して、使用する connectionName と style の両方を渡します。
まず、Lock.Theme.AuthStyle. を拡張するカスタムスタイルを作成します。以下の例のようなキー名を使用して、ロゴ、背景色、接続の名前を定義します。
builder の設定で、上書きする接続名に対応する AuthStyle を追加します。
builder.withAuthStyle("facebook", R.style.Style_Facebook) .build(...);
Lock がその接続を SocialButton に表示する必要がある場合、まずユーザーが上書きしたスタイルを探します。見つからない場合は、デフォルトの Lock スタイルが使用されます。上記の例では、facebook には Facebook の背景色、Facebook のロゴ、および名前として “FACEBOOK" が使用されます。