デフォルトのToggleButton
の外観を上書きしようとしています。ここでToggleButton
定義するXMLです:今Android:XMLを使用してトグルボタンに2つの異なる画像を指定してください。
<ToggleButton android:id="@+id/FollowAndCenterButton"
android:layout_width="30px"
android:layout_height="30px"
android:textOn="" android:textOff="" android:layout_alignParentLeft="true"
android:layout_marginLeft="5px"
android:layout_marginTop="5px" android:background="@drawable/locate_me"/>
は、我々は我々がクリックされた/非クリック状態に使用する2つの30×30のアイコンがあります。現在、状態によってプログラムアイコンの背景アイコンが変更されるコードがあります。
centeredOnLocation.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (centeredOnLocation.isChecked()) {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on));
} else {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me));
}
}
});
明らかに私はこれを行うためのより良い方法を探しています。私は自動的に状態を切り替えます背景画像の選択、作成しようとしました:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/locate_me" /> <!-- default -->
<item android:state_checked="true"
android:drawable="@drawable/locate_me_on" /> <!-- pressed -->
<item android:state_checked="false"
android:drawable="@drawable/locate_me" /> <!-- unchecked -->
をしかし、これは動作しません。方法isChecked()
とsetChecked()
を持つクラスにもかかわらず、state_checked属性:ToggleButton
API(http://developer.android.com/reference/android/widget/ToggleButton.html)を読んで、それが唯一の継承されたXML属性が
XML Attributes
Attribute Name Related Method Description
android:disabledAlpha The alpha to apply to the indicator when disabled.
android:textOff The text for the button when it is not checked.
android:textOn The text for the button when it is checked.
あることが表示されますアンドロイドがあるように思えません。
私はXMLで必要なことをする方法があるのでしょうか、面倒な回避策が残っていますか?
テキストを使用していない場合は、「CompoundButton」を使用する方が良いかもしれないことに注意してください。 – Timmmm
これを無視してください。 'CompoundButton'は抽象です! – Timmmm