Personalização da UI
Face Liveness Lite permite que você adapte a tela de liveness à sua marca: cores, título, logotipo, ícone de fechar, fonte e o efeito de máscara.
Passe um UiCustomization por meio de CafLivenessConfig.uiCustomization. Todos os campos são opcionais — tudo o que você omitir manterá a aparência padrão, então você pode personalizar apenas o que precisar.
Uso básico
val uiCustomization = UiCustomization(
font = LivenessFont.ResFont(R.font.your_font),
appBar = AppBarCustomization(
title = "Identity check",
titleColor = ContextCompat.getColor(context, R.color.white),
color = ContextCompat.getColor(context, R.color.brand_navy),
logoIcon = R.drawable.your_logo,
closeButton = R.drawable.your_close_icon,
),
mask = MaskCustomization(
isBlurEnabled = true,
color = ContextCompat.getColor(context, R.color.brand_navy),
),
prompt = PromptCustomization(
textColor = ContextCompat.getColor(context, R.color.white),
backgroundColor = ContextCompat.getColor(context, R.color.brand_green),
isRounded = true,
),
)
val config = CafLivenessConfig(
mobileToken = mobileToken,
personId = personId,
uiCustomization = uiCustomization,
)
CafFaceLivenessLite.instance.startLiveness(context, config) { event ->
// tratar eventos
}UiCustomization
O objeto raiz. Cada grupo é opcional e pode ser omitido.
font
LivenessFont?
null
Fonte personalizada aplicada ao título e ao texto da instrução.
mask
MaskCustomization?
null
Aparência da área ao redor do oval do rosto.
appBar
AppBarCustomization?
null
Título, cores, logotipo e ícone de fechar da barra superior.
prompt
PromptCustomization?
null
Aparência da caixa de instruções exibida ao usuário.
AppBarCustomization
A barra no topo da tela de liveness.
title
String?
Vazio
Título exibido durante a verificação de liveness.
titleColor
@ColorInt Int?
Branco
Cor do texto do título.
color
@ColorInt Int?
Transparente
Cor de fundo da barra superior.
logoIcon
@DrawableRes Int?
Sem logotipo
Logotipo exibido na barra superior.
closeButton
@DrawableRes Int?
Padrão do provedor (seta de voltar, branca)
Ícone do botão que fecha a tela de liveness.
MaskCustomization
A área fora do oval onde o usuário posiciona o rosto.
isBlurEnabled
Boolean
true
Se os efeitos de desfoque e vinheta são aplicados fora do oval. Defina como false para uma sobreposição plana.
color
@ColorInt Int?
Preto semitransparente
Cor da área fora do oval. Use uma cor com alpha para manter a prévia da câmera parcialmente visível.
PromptCustomization
A caixa que exibe instruções ao usuário durante a verificação.
textColor
@ColorInt Int?
Branco
Cor do texto da instrução.
backgroundColor
@ColorInt Int?
Preto semitransparente
Cor de fundo da caixa de instruções.
isRounded
Boolean
true
Se a caixa de instruções tem cantos arredondados.
LivenessFont
Aplicada ao título e ao texto da instrução.
LivenessFont.ResFont
@FontRes res: Int
Fonte dos recursos do seu app, por exemplo R.font.your_font.
LivenessFont.PathFont
path: String
Fonte carregada a partir de um caminho de arquivo.
Cores, ícones e fontes
As cores são valores de cor, não recursos de cor. Os campos são anotados
@ColorInt, então primeiro resolva os recursos comContextCompat.getColor(context, R.color.your_color), ou use um literal comoColor.WHITE/0xFF1B1B3A.toInt(). PassarR.color.your_colordiretamente produzirá a cor errada.Ícones e fontes são IDs de recursos (
@DrawableRes,@FontRes).Recursos inválidos são ignorados. Se um ícone ou recurso de fonte não puder ser carregado, a sessão de liveness continua com a aparência padrão em vez de falhar.
Definir um valor como
nullsignifica "usar o padrão", não "ocultar". PassarcloseButton = nullmantém o ícone de fechar padrão do provedor em vez de remover o botão.
O que não pode ser personalizado
Alguns aspectos da tela de liveness são fixos pelo SDK para proteger a integridade da verificação:
Orientação da tela (sempre retrato).
Capturas de tela (sempre desativadas).
O filtro da prévia da câmera, que é definido pela configuração da sua conta.
Os textos das instruções. Eles podem ser localizados da forma padrão no Android — veja Localização de strings.
Acessibilidade
As cores padrão e as proporções de contraste são verificadas em relação a WCAG 2.1 AA diretrizes. Personalizar cores pode invalidar essa conformidade, então verifique o contraste entre texto e fundo — especialmente prompt.textColor com prompt.backgroundColor, e appBar.titleColor com appBar.color.
Links:
Atualizado

