SORU
7 EKİM 2009, ÇARŞAMBA


Android: düğmesi XML kullanmak için iki farklı resim Belirtin

ToggleButton görünüm varsayılan geçersiz kılmak için çalışıyorum. İşte ToggleButton tanımlayan XML:

<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"/>

Şimdi, iki adet 30 x var tıkladığım için kullanmak istiyoruz 30 simgeleri olmayan tıkladım Birleşik Devletleri. Şimdi Program aracılığıyla fon simge durumuna bağlı olarak değişir bu kod var:

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));
            }
        }
});

Açıkçası daha iyi bir şekilde bunu yapmak için arıyorum. Otomatik olarak devletler arasında geçiş olan arka plan görüntüsü için bir seçici yapmaya çalıştım:

 <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 -->

Ama bu işe yaramazsa; ToggleButton API (http://developer.android.com/reference/android/widget/ToggleButton.html) okuma, sadece miras xml öznitelikleri görünür

    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. 

:State_checked android niteliği, sınıf yöntemi isChecked() setChecked() olmasına rağmen görünmüyor.

Bir şekilde ne istediğimi yapmak için XML veya dağınık benim çözüm takılıp kalıyorum?

CEVAP
7 EKİM 2009, ÇARŞAMBA


Kod gayet iyi. Ancak, Aç / Kapat düğmesini varsayılan son gelmeli yani seçici eşleşen ilk öğeyi görüntüler. Kullanılacak tüm sağlamak için aşağıdaki şekilde: öğeleri düzenleyin

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_pressed="true" /> //currently pressed turning the toggle on
    <item android:state_pressed="true" /> //currently pressed turning the toggle off
    <item android:state_checked="true" /> //not pressed default checked state
    <item /> //default non-pressed non-checked
</selector>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011