1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. cyb0rg, 26.02.2018 #1
    cyb0rg

    cyb0rg Threadstarter Neuer Benutzer

    Guten Tag zusammen,

    in android ist es ja möglich über die R.id ressource ein Element anzusprechen, wie z.B eine Seekbar.

    darüber hinaus kann man ja mit den public methoden z.b enablen / disablen, breite definieren, etc..

    ich versuche aber aktuell ein attribut zu steuern, dessen methode es nicht gibt, oder ich nicht gefunden habe.

    und zwar versuche ich gerade den attribut "style" anzusprechen.

    hat einer eine idee?

    gruss
     
  2. swa00, 26.02.2018 #2
    swa00

    swa00 Moderator Team-Mitglied

    Hall cyborg,

    es tut mir leid, aber mit deiner Erklärung kann ich nicht viel Anfangen.

    was meinst du mit "ansprechen" und "attribut steuern" ?
    Bitte erkläre dein Anliegen ein wenig genauer , ggf mit Source

    Styles ansich kannst du zur Runtime natürlich setzen , wenn sie vorher als style in einer xml vorliegen.

    Desweiteren gibt es auch einige Aufrufe (z.b. PorterDuff) , die man verwenden kann,
    sind allerdings Plattformabhängig
    Code:
    ///////////////////////////////////////////////////////////////////////////////
      public void setSwitchColor (Switch sw, int color)
      {
        sw.getThumbDrawable().setColorFilter(color, PorterDuff.Mode.MULTIPLY);
        sw.getTrackDrawable().setColorFilter(color, PorterDuff.Mode.MULTIPLY);
      }
     
    Zuletzt bearbeitet: 26.02.2018
  3. cyb0rg, 26.02.2018 #3
    cyb0rg

    cyb0rg Threadstarter Neuer Benutzer

    hi @swa00

    ich denke mit einem code ist es tatsächlich einfacher :)

    Code:
    <SeekBar
            android:id="@+id/seekBar"
            style="@style/Widget.AppCompat.SeekBar.Discrete"
            android:layout_width="250dp"
            android:layout_height="wrap_content" />
    Code:
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            SeekBar seekBar = findViewById(R.id.seekBar);
        }
    Zur vereinfachung habe ich ein kleines bsp erstellt.

    wie du siehst habe ich im xml ein Element "SeekBar". Hier habe ich unter anderem einen Attribut: "style".

    Width etc kann ich über die vorhandenen Methoden anpassen bzw setzen, doch ein Attribut wie "style", wie kann ich den im Code setzen?
    den vorhandenen Eintrag "style=@style....." habe ich manuell im xml eingefügt, doch würde ich gerne solches im Code setzen, ist es möglich?

    hoffe ist klarer was ich meine :)

    gruss
     
  4. swa00, 26.02.2018 #4
    swa00

    swa00 Moderator Team-Mitglied

    Hallo,

    ja, es kommt ein wenig "klarer" herüber :)

    Nun , in deinem Beispiel verwendest du einen Style , der seitens Android geliefert wird und
    du statisch im Layout.xml verankerst.

    Natürlich kannst du auch deine eigenen styles "kreieren" und diese definieren.

    Dann kannst du wiederum diesen Style deiner Seekbar zuordnen.

    Styles and Themes | Android Developers
    Android Styles and Themes

    Diese sind dann allerdings statisch im Layout

    Hier noch ein beispiel
    Custom seekbar (thumb size, color and background)
     
  5. cyb0rg, 26.02.2018 #5
    cyb0rg

    cyb0rg Threadstarter Neuer Benutzer

    hi @swa00,

    vielen dank :)

    ich habe mir die ilnks mal angschaut, entweder habe ich da etwas übersehen, oder da wird nachwievor im xml die styles definiert.

    bin mir nicht sicher ob klar ist was meine Frage ist.

    wenn ich im xml den style setze, dann wird es geladen das ist kein problem.

    was ich jetzt aber suche ist die möglichkeit den style über den java code zu setzen. z.B

    seekBar.setStyle("string.....").

    so dass ich mit 1 layout von xml.. verschiedene seekbars mit entsprechend styles im code implementieren kann.

    z.B 3 seekbars unter einander einfügen vom gleichen layout, aber jeweils ein etwas anderer style definieren.

    verstehst du wie ich das meine?

    gruss
     
  6. swa00, 26.02.2018 #6
    swa00

    swa00 Moderator Team-Mitglied

    Das nennt sich "Zur Runtime".

    Dies ist bei einigen Elementen (z.b. Seekbar) nur recht umständlich zu realsieren,
    denn ein Seekbar besteht aus mehreren Elementen, Farben und / oder aus Bitmaps.
    Farben eines Seekbars sind recht einfach zur Runtime zu ändern - das Aussehen der Progressbar oder des Thumbs wiederum nicht.

    Oder du definierst ein paar Varianten im Vorfeld und änderst sie zur Runtime

    Code:
    SeekBar seekBar = (SeekBar) findViewById(R.id.sbPlaySongSeekBar);
    seekBar.setThumb(getResources().getDrawable(R.drawable.thumb_drawable_1));
    seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.progress_drawable_1));
    
    Hier auch noch was zum Verständnis
    Android SeekBar and Custom SeekBar Examples



    Wobei hier z.B. entweder ein Shape oder ein Bitmap übergeben erden kann

    Bei Switches ist das ein weniger einfacher ( siehe mein Beispiel oben - PorterDuff)


    Vielleicht ein wichtiger Hinweis für dich :
    Bitte beachte, dass bei jeder unterschiedlichen Bildschirmauflösung das Ergebnis wieder abweichen kann - bishin zur Unbedienbarkeit.
    Alles das musst du berücksichtigen , wenn die app für den Store sein soll

    Die Standardthemes übernehmen für dich schon das Ganze
     
    Zuletzt bearbeitet: 26.02.2018
  7. cyb0rg, 26.02.2018 #7
    cyb0rg

    cyb0rg Threadstarter Neuer Benutzer

    hi @swa00,
    vielen dank!

    verstehe ich es richtig, dass falls ich das anpassen möchte, dass ich quasi den seekbar selbst nachbauen muss?

    gruss
     
  8. swa00, 26.02.2018 #8
    swa00

    swa00 Moderator Team-Mitglied

    Ausser der Grundfunktion : Ja
     
  9. cyb0rg, 27.02.2018 #9
    cyb0rg

    cyb0rg Threadstarter Neuer Benutzer

    @swa00 danke für hilfe :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Code-Text erweitern bzw. sinnvoll aufgliedern & optisch verbessern Android App Entwicklung 13.05.2018
Benötigte Zugriff ausschalten Android App Entwicklung 07.03.2018
xml/sharedpreferences.xml wann wird die Datei geladen? Android App Entwicklung 07.02.2018
[ERLEDIGT] Verschiedene Layouts in BottomNavigationActivity verwalten Android App Entwicklung 06.12.2017
[ERLEDIGT] Wandernder Text Android App Entwicklung 17.10.2017
[OFFEN] Fehlende Elemente im RecyclerView innerhalb eines Fragments Android App Entwicklung 01.09.2017
[OFFEN] Wie bekomme ich Zugriff auf meine externe SD Karte? Android App Entwicklung 23.08.2017
[ERLEDIGT] Android O Neue Fonts in XML Methode Android App Entwicklung 27.07.2017
Du betrachtest das Thema "zugriff auf xml elemente bzw attribute" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.