1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Eigene ButtonBackgrounds via xml...

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von enyomo, 16.09.2011.

  1. enyomo, 16.09.2011 #1
    enyomo

    enyomo Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    16.09.2011
    Phone:
    Nexus S
    Guten Morgen zusammen!
    Ich habe mir das Beispiel der individuellen Gestaltung von Buttons - bzw. deren Background - auf der Google-Developer Seite angesehen und versuche das gerade in einem ersten eigenen Programm umzusetzen. Der original Code und die dort befindlichen Bilder funktionieren, auch ist mir die Funktionsweise des Ganzen schlüssig. Jetzt habe ich eigene .png Dateien via VektorZeichen-Programm entwickelt und den Code auf die neuen Namen angepasst um eigen entworfene Buttons darstellen zu können. Aber der Reihe nach:

    Das ist meine "links_button.xml" im Verzeichnis /res/drawable-mdpi/

    HTML:
    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/links_pressed"
              android:state_pressed="true" />
        <item android:drawable="@drawable/links_focused"
              android:state_focused="true" />
        <item android:drawable="@drawable/links_normal" />
    </selector>
    Zugriff erfolgt über "buchstaben_view.xml":

    HTML:
    <Button
            android:id="@+id/new_fragments"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="@drawable/links_button"
            android:layout_gravity="center_vertical" />
    Die enstprechenden png Grafiken liegen ebenfalls aktuell in einer 50x50-Pixel-Größe im Verzeichnis /res/drawable-mdpi/ und heissen natürlich auch "links_normal.png", "links_focused.png" usw.


    Mit der original-Bezeichnung im Google-Beispiel Code, funktioniert die Sache einwandfrei, ändere ich aber nun die Namen meiner xml-Datei und passe sie entsprechend meiner eigenen Buttons an, so kommt folgende Fehlermeldung in Eclipse 3.5, die ich leider nicht deuten kann:

    Failed to parse file /home/enyomo/Ubuntu One/workspace-vorschule/vorschule/res/drawable-mdpi/links_button.xml
    Details:
    org.xmlpull.v1.XmlPullParserException: Binary XML file line #4: <item> tag requires a 'drawable' attribute or child tag defining a drawable

    Da die Grafiken defenitiv vorliegen und ich nicht verstehe, was er mit "Failed to parse File..." meint, bitte ich um kurzen Rat.
     
  2. sixi, 16.09.2011 #2
    sixi

    sixi Erfahrener Benutzer

    Beiträge:
    237
    Erhaltene Danke:
    64
    Registriert seit:
    20.01.2009
    Sieht eigentlich gut aus. Ist der Code den du gepostet hast der vor oder nach der Änderung, wo die Fehlermeldung kommt?
    Die Fehlermeldung sagt dir, dass er in dem "Item"-Tag in Zeile 4 das Attribut "drawable" nicht finden kann. Wobei es in deinem Code vorhanden ist
    Code:
    <item android:drawable="@drawable/links_pressed" <!-- das hier! -->
              android:state_pressed="true" />
    
    Cleane mal dein Projekt (Project -> Clean Project) und schau was er dann sagt...
     
  3. enyomo, 16.09.2011 #3
    enyomo

    enyomo Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    16.09.2011
    Phone:
    Nexus S
    Hi!
    Einen "Clean" hab ich bereits durchgeführt, der o.a. Code ist der aktuelle nach der Änderung. Das Original im Google-Code sah so aus:

    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/android_pressed"
              android:state_pressed="true" />
        <item android:drawable="@drawable/android_focused"
              android:state_focused="true" />
        <item android:drawable="@drawable/android_normal" />
    </selector>
    Eigentlich habe ich nur den Dateinamen der Google-XML geändert von "android_button.xml" zu "links_button.xml", meine Grafiken in der passenden Auflösung in das Verzeichnis gelegt, die Dateinamen in der xml geändert und auch den Part
    HTML:
    android:background="@drawable/android_button"
    zu
    HTML:
    android:background="@drawable/links_button"
    geändert...
    Meine Vermutung zielt auf die Grafiken selbst, allerdings finde ich keine Informationen ob/wie die original png´s von meinen selbst erstellten abweichen könnten?
     
  4. enyomo, 16.09.2011 #4
    enyomo

    enyomo Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    16.09.2011
    Phone:
    Nexus S
    Hier noch eine kleine "Bestätigung" das alles vorhanden ist ^^

    Bildschirmfoto.png

    Bildschirmfoto-1.png
     
  5. enyomo, 16.09.2011 #5
    enyomo

    enyomo Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    16.09.2011
    Phone:
    Nexus S
    Nachtrag: Es funktioniert wieder! Ich habe die Grafiken neu gespeichert und die links_button.xml von Hand neu geschrieben. Fehler ist weg - warum auch immer... :sad:
    Aber so ist das ja nun mal beim coden... ^^ Vielen Dank trotzdem!
     

Diese Seite empfehlen