RadioButton mit Image - "Button" ausblenden

MetBo

MetBo

Erfahrenes Mitglied
4
Hallo,

ich habe mal wieder ein Problem mit dem Layout.

Mit der RadioGroup und zwei RadioButtons mit Image habe ich mir einen "Chooser" gebastelt (siehe Bild).
attachment.php


Jetzt ist die Frage, wie kann ich die RadioButtons ausblenden? Das Image des Buttons sollte aber noch dargestellt werden - auch die Funktionalität darf nicht beeinträchtigt werden.

Mein bisheriger Code:
Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="wrap_content"
	android:layout_gravity="center_horizontal">

	<RadioGroup android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:orientation="horizontal"
		android:id="@+id/rgrpChooserArticlelist" android:layout_gravity="center_horizontal"
		android:background="@drawable/titlebar_background">

		<RadioButton android:id="@+id/radArticlesTdyArticlelist"
			android:background="@drawable/chooser_today_sel"
			android:layout_height="40dip" android:width="80dip"
			android:visibility="visible" android:layout_gravity="center" />

		<RadioButton android:id="@+id/radArticlesOldArticlelist"
			android:background="@drawable/chooser_older_sel"
			android:layout_height="40dip" android:width="80dip"
			android:visibility="visible" />

	</RadioGroup>

</LinearLayout>

Und, gibt es eine Möglichkeit, die Buttons zu zentrieren?

Danke,
Grüße
 

Anhänge

  • chooser.png
    chooser.png
    2,4 KB · Aufrufe: 1.234
Hat keiner eine Idee? :(
 
Also ich glaube ja nicht, dass man das auf einfache Art und Weise hinbekommt.
Da es feste Controls sind, die von sich aus keine derartige Funktionalität bieten, musst du wohl wenn dann tiefer gehen und den dich störenden Knopf mit Draw während der Laufzeit überpinseln.
Aber warum nimmst du nicht einfach zwei ImageButtons und lässt es nur zu, dass einer gleichzeitig selektiert ist? Warum bist du grade so auf die RadioButtons aus?
 
damit gehts glaub ich

radio1.setCompoundDrawablesWithIntrinsicBounds(xxx)
 
Ist leider nicht das Richtige.
Diese Methode setzt lediglich ein drawable ZWISCHEN Text und dem selektierbaren RadioButton-Icon.

Habe aber noch was anderes gefunden.
public void setButtonDrawable (int resid)

Damit kannst du direkt das Bild für den RadioButton setzen und das Standardicon wird überzeichnet.

Vorteil: Du kannst dir die ImageView sparen, da du jetzt dein selbst erstelltes drawable direkt auf den RadioButton setzen kannst.

Nachteil: Es gibt so noch keine visuelle Anzeige von selektiert und nicht selektiert. Du musst also für den selektierten Zustand noch jeweils eine eigene Drawable erstellen (zB. mit Rahmen außen herum etc.) und in Abhängigkeit vom aktuellen Zustand über einen Eventhandler setzen.



swordi schrieb:
damit gehts glaub ich

radio1.setCompoundDrawablesWithIntrinsicBounds(xxx)
 
ah dann hab ich die falsche methode genommen ;)

hab das mal gemacht, und auf die schnelle nur die zeile gefunden ;) ein versuch wars wert ;)
 
Problem habe ich mit folgendem Code gelöst:

Code:
<RadioGroup android:layout_width="fill_parent"
		android:layout_centerHorizontal="true" android:orientation="horizontal"
		android:layout_height="wrap_content" android:id="@+id/rgrpChooserArticlelist"
		android:background="@drawable/titlebar_background" android:gravity="center">

		<RadioButton android:id="@+id/radArticlesTdyArticlelist"
			android:button="@drawable/chooser_today_sel" android:layout_height="40dip"
			android:width="100dip" android:visibility="visible" />

		<RadioButton android:id="@+id/radArticlesOldArticlelist"
			android:button="@drawable/chooser_older_sel" android:layout_height="40dip"
			android:width="100dip" android:visibility="visible" />

	</RadioGroup>

chooser_today_sel:
Code:
<?xml version="1.0" encoding="utf-8"?>

<selector 
	xmlns:android="http://schemas.android.com/apk/res/android" >
	
   	<item 
   		android:state_checked="true" 
   		android:state_window_focused="false" 
   		android:drawable="@drawable/chooser_today_press" /> 
  
  	<item 
  		android:state_checked="false" 
  		android:state_window_focused="false" 
  		android:drawable="@drawable/chooser_today" /> 
  	
  	<item 
  		android:state_checked="true" 
  		android:state_pressed="true" 
  		android:drawable="@drawable/chooser_today_press" /> 
  
  	<item 
  		android:state_checked="false" 
  		android:state_pressed="true" 
  		android:drawable="@drawable/chooser_today" /> 
  	
  	<item 
  		android:state_checked="true" 
  		android:state_focused="true" 
  		android:drawable="@drawable/chooser_today_press" /> 
  	
  	<item 
  		android:state_checked="false" 
  		android:state_focused="true" 
  		android:drawable="@drawable/chooser_today" /> 
  	
  	<item 
  		android:state_checked="false" 
  		android:drawable="@drawable/chooser_today" /> 
  
  	<item 
  		android:state_checked="true" 
  		android:drawable="@drawable/chooser_today_press" /> 
   	    
</selector>

Ich habe einfach einen Selector erstellt und diesen als "android:button" zugewiesen.

Danke
 

Ähnliche Themen

MES
Antworten
10
Aufrufe
787
MES
MES
A
  • AnimaAngelo85
Antworten
1
Aufrufe
313
swa00
swa00
C
Antworten
8
Aufrufe
1.111
swa00
swa00
Zurück
Oben Unten