wake-up-neo.net

so erstellen Sie ein benutzerdefiniertes Design und verwenden es in der Android-Anwendung

Wie erstellt man ein benutzerdefiniertes Design und verwendet es im Code? im Menü, wie man eine Theme-Option implementiert und sich für die Aktivität anmeldet

irgendwelche Ideen ?

15
user428231

Auf der Android-Entwicklerseite gibt es ein Nizza Styles and Themes Guide . Grundsätzlich müssen Sie Folgendes tun

  1. Definieren Sie einen Stil (oder erben Sie einen integrierten Stil). Einen Stil definieren

speichern Sie eine XML-Datei im Verzeichnis res/values/ Ihres Projekts. Das Der Name der XML-Datei ist beliebig, es muss jedoch die Erweiterung .xml verwendet werden und im res/values/-Ordner gespeichert werden.

Der Wurzelknoten der XML-Datei muss <resources> sein.

Fügen Sie für jeden Stil, den Sie erstellen möchten, ein Element zur Datei .__ hinzu. mit einem Namen, der den Stil eindeutig identifiziert (dieses Attribut ist erforderlich).

d.h.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.MyGreenTheme" parent="Theme.Light">
        <item name="Android:windowBackground">#11aa22</item>
    </style>
</resources>

Es ist nützlich, die Ressourcendatei themes.xml zu benennen, damit Sie leichter erkennen können, wofür diese Stile verwendet werden.

  1. Anwenden Der definierte Stil für die gewünschte Aktivität oder Ansicht Stilisiert. Du kannst entweder

    • legen Sie das Activity/Application-Design in der Manifestdatei fest:

    <activity Android:theme="@style/Theme.MyGreenTheme"/>

    • oder setzen Sie es dynamisch - verwenden Sie den entsprechenden Setter der Aktivitätsklasse - setTheme () .
13
stan0

Diese ist perfekte Site, die alle notwendigen Dateien erstellt, um eine benutzerdefinierte Benutzeroberfläche zu erstellen. Ich habe es vor ein paar Wochen persönlich benutzt und es hat für mich super funktioniert.

Ich habe keine Zugehörigkeit zu dieser Seite, aber ich fand sie sehr interessant .. Ich hoffe, das kann Ihnen helfen :)

3

Benutzerdefinierte Ansichten erstellen:

die öffentliche Klasse CustomTextView erweitert AppCompatTextView {

public CustomTextView(Context context) {
    super(context);
    setCommonChanges(DefaultTheme.getInstance().textColor, true, context);
}

public CustomTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setDefaultValues(context, attrs);
}

public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setDefaultValues(context, attrs);
}

private void setDefaultValues(Context context, AttributeSet attrs) {

    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomTextView);
    final int N = a.getIndexCount();
    int color = DefaultTheme.getInstance().textColor;
    boolean isCustomFont = a.getBoolean(R.styleable.CustomTextView_isCustomFont, true);
    for (int i = 0; i < N; ++i) {

        int colorIndex = a.getInteger(R.styleable.CustomTextView_tvBackground, 2);
        switch (colorIndex) {
            case 1:
                color = DefaultTheme.getInstance().headingTextColor;
                break;

            case 2:
                color = DefaultTheme.getInstance().textColor;
                break;

            case 3:
                color = DefaultTheme.getInstance().textHintColor;
                break;

            case 4:
                color = DesignUtils.getColorIdFromHexCode("#FFFFFF");
                break;

            case 5:
                color = DefaultTheme.getInstance().iconColor;
                break;
            case 6:
                color = DefaultTheme.getInstance().menuHeaderTextColor;
                break;
            case 7:
                color = DefaultTheme.getInstance().menuTextColor;
                break;
            case 8:
                color = DefaultTheme.getInstance().keyboardtextcolor;
                break;
            case 9:
                color = DesignUtils.getColorIdFromHexCode("#BEBEBE");
                break;
        }


    }
    a.recycle();

    setCommonChanges(color, isCustomFont, context);
}

private void setCommonChanges(int color, boolean isCustomFont, Context context) {
    if (isCustomFont) {
        Typeface typeface = DefaultTheme.getInstance().getTVFont(context);
        setTypeface(typeface, getTypeface().getStyle());
    }
    setTextColor(color);
}

public void updateTypeFace(int style){
    Typeface typeface = DefaultTheme.getInstance().getTVFont(getContext());
    setTypeface(typeface, style);
}
0
Kushaal Singla