Freigeben über


Design der UI-Bibliothek in einer Anwendung

Screenshot der Benutzeroberfläche mit benutzerdefinierten Farben in der UI-Bibliothek

Die UI-Bibliothek von Azure Communication Services enthält verschiedene Komponenten, Symbole und Verbundelemente, die Ihnen ermöglichen, hochwertige Benutzeroberflächen für Ihre Projekte zu erstellen. Die UI-Bibliothek verwendet Komponenten und Symbole aus Fluent UI, dem plattformübergreifenden Designsystem, das von Microsoft verwendet wird. Daher werden die Komponenten unter Berücksichtigung von Benutzerfreundlichkeit, Barrierefreiheit und Lokalisierung entwickelt.

In diesem Artikel erfahren Sie, wie Sie das Design für Komponenten der UI-Bibliothek während der Konfiguration einer Anwendung ändern.

Die UI-Bibliothek wurde für Entwickler auf einer separaten Website umfassend dokumentiert. Die Dokumentation ist interaktiv und hilft Ihnen zu verstehen, wie die APIs funktionieren, indem Sie sie direkt auf einer Webseite ausprobieren können. Weitere Informationen finden Sie in der Dokumentation zur UI-Bibliothek.

Voraussetzungen

Einrichten von Designs

Eine ausführliche Dokumentation und Kurzanleitungen zur Webbenutzeroberflächenbibliothek finden Sie im Storybook zur Webbenutzeroberflächenbibliothek.

Weitere Informationen finden Sie unter Design in der Web-UI-Bibliothek.

Weitere Informationen finden Sie in der Open Source Android UI Library und im Beispielanwendungscode.

Definieren eines Designs

Die Verarbeitung von Designs für Android erfolgt über XML-Ressourcendateien. Wir stellen die folgenden Ressourcen-IDs für den öffentlichen Bereich bereit:

<resources>
    <public name="AzureCommunicationUICalling.Theme" type="style" />
    <public name="azure_communication_ui_calling_primary_color" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint10" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint20" type="attr" />
    <public name="azure_communication_ui_calling_primary_color_tint30" type="attr" />
    <public name="azure_communication_ui_calling_foreground_on_primary_color" type="attr" />
</resources>

Sie können ein Design wie das folgende in Ihren Apps implementieren, um die primäre Farbe und die Farbtöne festzulegen:

<style name="MyCompany.CallComposite" parent="AzureCommunicationUICalling.Theme">
    <item name="azure_communication_ui_calling_primary_color">#7800D4</item>
    <item name="azure_communication_ui_calling_primary_color_tint10">#882BD8</item>
    <item name="azure_communication_ui_calling_primary_color_tint20">#E0C7F4</item>
    <item name="azure_communication_ui_calling_primary_color_tint30">#ECDEF9</item>
    <item name="azure_communication_ui_calling_foreground_on_primary_color">#00FF00</item>
</style>

Das obige Beispiel wirkt sich auf die folgenden Benutzeroberflächenelemente aus:

  • PrimaryColor:
    • Avatar/Video – Umrahmung – Hinweis auf Sprachmodus
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund
  • PrimaryColorTint10 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund – hervorgehoben – heller Modus
    • Schaltfläche „An Gespräch teilnehmen“ – Umrahmung – heller/dunkler Modus
  • PrimaryColorTint20 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund – hervorgehoben – dunkler Modus
  • PrimaryColorTint30 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Umrahmung – hervorgehoben – heller/dunkler Modus

Anwenden eines Designs

Der Designstil wird angewandt, um die Designressourcen-ID an ThemeConfiguration/Theme in CallCompositeBuilder zu übergeben.

val callComposite: CallComposite =
        CallCompositeBuilder()
            .theme(R.style.MyCompany_CallComposite)
            .build()

Helle und dunkle Modi

Das Android-Ressourcensystem verarbeitet das Nachtdesign. Der Nachtmodus unter Android ist eine systemweite Konfiguration. Wenn Sie den Nachtmodus aktivieren, verweist Android auf Ressourcen in den -night/-Ordnern. Um die Farben für den Nachtmodus anzugeben, fügen Sie eine zweite Datei theme.xml in values-night/ hinzu.

Um den Nachtmodus programmgesteuert zu aktivieren, stellt Android die folgende Funktion bereit. Diese Konfiguration gilt jedoch global für die Anwendung. Es gibt keine zuverlässige Möglichkeit, den Nachtmodus für eine einzelne Aktivität festzulegen. Verwenden Sie zum Erzwingen eines dunklen Designs die folgende Einstellung in Ihren Anwendungen:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

Schriftfarbe

Mit azure_communication_ui_calling_foreground_on_primary_color können Sie mithilfe der Primärfarbe die Schriftfarbe konfigurieren, die auf Elementen angezeigt wird. Sie können diese Einstellung verwenden, wenn Sie ein bestimmtes Design erzielen oder Brandingrichtlinien einhalten möchten. Wenn Sie azure_communication_ui_calling_foreground_on_primary_color ändern, sollten Sie sicherstellen, dass der Text lesbar und visuell ansprechend bleibt, Wählen Sie dazu eine geeignete Kontrastschriftfarbe für die Komponenten mit der Primärfarbe aus.

Weitere Informationen finden Sie in der Open-Source-iOS-UI-Bibliothek und im Beispielanwendungscode.

Definieren eines Designs

Sie können das Design anpassen, indem Sie die Primärfarbe und die zugehörigen Farbtöne ändern. Sie haben auch die Möglichkeit, die hellen und dunklen Modi im Farbschema außer Kraft zu setzen.

Betroffene Benutzeroberfläche

  • PrimaryColor:
    • Avatar/Video – Umrahmung – Hinweis auf Sprachmodus
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund
  • PrimaryColorTint10 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund – hervorgehoben – heller Modus
    • Schaltfläche „An Gespräch teilnehmen“ – Umrahmung – heller/dunkler Modus
  • PrimaryColorTint20 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Hintergrund – hervorgehoben – dunkler Modus
  • PrimaryColorTint30 Color:
    • Schaltfläche „An Gespräch teilnehmen“ – Umrahmung – hervorgehoben – heller/dunkler Modus

Implementierung

Sie können benutzerdefinierte Designoptionen erstellen, die das ThemeOptions-Protokoll implementieren. Sie müssen eine Instanz der neuen Klasse in CallCompositeOptions einschließen.

class CustomThemeOptions: ThemeOptions {

 var primaryColor: UIColor {
  return UIColor(named: "primaryColor")
 }
 
 var primaryColorTint10: UIColor {
  return UIColor(named: "primaryColorTint10")
 }
 
 var primaryColorTint20: UIColor {
  return UIColor(named: "primaryColorTint20")
 }
 
 var primaryColorTint30: UIColor {
  return UIColor(named: "primaryColorTint30")
 }

 var colorSchemeOverride: UIUserInterfaceStyle {
  return UIUserInterfaceStyle.dark
 }
}

let callCompositeOptions = CallCompositeOptions(theme: CustomThemeOptions())

Schriftfarbe

foregroundOnPrimaryColor ermöglicht Ihnen das programmgesteuerte Ändern der Schriftfarbe, die auf Elemente mit der Primärfarbe angezeigt wird. Sie können diese Methode verwenden, wenn Sie ein bestimmtes Design erzielen oder Brandingrichtlinien einhalten möchten. Wenn Sie foregroundOnPrimaryColor aufrufen, sollten Sie sicherstellen, dass der Text lesbar und visuell ansprechend bleibt, Wählen Sie dazu eine geeignete Kontrastschriftfarbe für die Komponenten mit der Primärfarbe aus.

struct CustomColorTheming: ThemeOptions {    

    private var envConfigSubject: EnvConfigSubject  

    init(envConfigSubject: EnvConfigSubject) {        
        self.envConfigSubject = envConfigSubject    
    }    

    var primaryColor: UIColor {        
        return UIColor(envConfigSubject.primaryColor)    
    }    
    
    var primaryColorTint10: UIColor {        
        return UIColor(envConfigSubject.tint10)    
    }    
    
    var primaryColorTint20: UIColor {        
        return UIColor(envConfigSubject.tint20)    
    }    
    
    var primaryColorTint30: UIColor {        
        return UIColor(envConfigSubject.tint30)    
    }    
    
    var foregroundOnPrimaryColor: UIColor {        
        return UIColor(envConfigSubject.foregroundOnPrimaryColor)    
    }    

    var colorSchemeOverride: UIUserInterfaceStyle {        
        return envConfigSubject.colorSchemeOverride    
    }
}


let callCompositeOptions = CallCompositeOptions(theme: CustomColorTheming())

Definieren von Farbressourcen

Definieren Sie jede Farbe in den Ressourcen mit Schattierungen für den hellen und den dunklen Modus. Die folgende Referenzbild zeigt, wie Ressourcen in einem Xcode-Projekt konfiguriert werden.

Screenshot einer Beispielkonfiguration von iOS-Farbressourcen

Nächste Schritte