ToggleButton mit Text und Bild funktioniert, wie kann ich das Bild in der Größe anpassen?

  • Antworten:3
  • Bentwortet
Dennis Mro...
  • Forum-Beiträge: 19

31.01.2011, 16:15:12 via Website

Hi,

ich habe einen ToggleButton mit Text und Bild:

1XML:
2
3 <ToggleButton
4 android:id="@+id/schalter_button_1"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent"
7 android:layout_weight="1"
8 android:layout_margin="10dp"
9 />

1Java: (kurzer Beispielcode)
2
3[...]
4 buttonText = "Beschriftung des ToggleButtons";
5 toggleButtons[button].setText(buttonText);
6 toggleButtons[button].setCompoundDrawablesWithIntrinsicBounds(R.drawable.switchpanelsymbol_3100, 0, 0 ,0);
7[...]

Soweit, sogut, Text und Symbol werden auf dem ToggleButton angezeigt.

Jetzt meine Frage: Wie kann ich denn das Image vorher auf eine passende Größe verkleinern, bevor es auf den Button gelegt wird? Meine Images stammen aus unterschiedlichen Quellen (und sind nicht zwangsweise unter meiner Kontrolle) und sind unterschiedlich groß. Ab einer gewissen Größe werden dann die Bilder abgeschnitten und nur ausschnittsweise dargestellt. Das möchte ich verhindern, indem ich die Bilder entsprechend verkleinert auf die Buttons lege.

Jemand eine Idee?


Dennis

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

31.01.2011, 16:37:16 via Website

Was ist denn passend ?

hast du die Bilder in den Ordnern mehrmals abgelegt (HDPI, etc pp) ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Dennis Mro...
  • Forum-Beiträge: 19

01.02.2011, 07:11:15 via Website

Die Bilder liegen im Ordner drawable, sie liegen nur in einer Größe vor. Das ist in meinem speziellen Fall auch nicht so gravierend, weil meine Anwendung einzig auf einem einzigen Gerät laufen wird (Industrieeinsatz).

Der Benutzer bekommt etwa 100 Bilder, Icons, Symbole zur Verfügung gestellt (von mir). Weiterhin hat er 16 ToggleButtons. Per Konfigurationsdatei kann jeder der 16 Buttons mit einem beliebigen Text und einem Symbol belegt werden.

Da die Symbole aus einer anderen (Desktop-)Anwendung kommen möchte ich sie gerne 1:1 in mein Android-Projekt mitnehmen, ohne jedes Bild von Hand skalieren zu müssen. Sie liegen in teils unterschiedlichen Größen vor.

Passend heißt in meinem Fall: Meine ToggleButtons haben ein Querformat. Links Symbol, rechts von Text. Meine Symbole sind i. d. R. quadratisch. Die Symbole sollen z. B. immer in der größe 100dp x 100dp dargestellt werden, so daß sich insgesamt ein gleichmäßiges Bild ergibt (meine Buttons sind etwa 120dp x 250dp groß).

Ich kann leider kein Bild zur verfügung stellen. Aber derzeit ist es so, daß meine Symbole zwar immer rechts am Rand des Schalters angezeigt werden, aber wenn die Symbole größer als (in meinem Fall) 100px x 100px sind werden sie weiterhin linksbündig vertikal mittig dargestellt, aber nicht skaliert sonden abgeschnitten. Alles, was außerhalb des Buttons liegt wird abgeschnitten. Stattdessen sollen die Bilder jedoch auf eine feste Größe skaliert werden.



Kann ich denn die Oberfläche des ToggleButtons mit einem eigenen Layout versehen? Dann könnte ich ja ein einfaches Layout mit fester Breite und einem ImageView (mit festen Maßen) und TextView erstellen.

— geändert am 01.02.2011, 07:25:04

Antworten
Dennis Mro...
  • Forum-Beiträge: 19

01.02.2011, 09:54:16 via Website

Lösung gefunden (kann so einfach sein):


1buttonText = "Beschriftung des ToggleButtons";
2toggleButtons[button].setText(buttonText);
3
4Drawable img = getBaseContext().getResources().getDrawable( R.drawable.switchpanelsymbol_003 );
5img.setBounds( 0, 0, 60, 60 );
6toggleButtons[button].setCompoundDrawables( img, null, null, null );

Antworten