2014-10-19 17 views
22

Obramowanie pola wyboru jest niewidoczne na białym tle.Jak ustawić kolor obramowania pola wyboru

enter image description here

grałem z różnymi parametrami kolorów bez powodzenia. Potrzebuję czarnej granicy pola. Tak, istnieją przykłady, aby zrobić niestandardowe pole wyboru. We wszystkich możliwych do przeciągnięcia przykładach normalne pudełko jest widoczne wewnątrz nowego kształtu. A odkształcalne kształt jest wąski bez tekstu w android: text = ""

enter image description here

Ale dlaczego wyboru nie wygląda dobrze w zwykłej xml:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
         android:id="@+id/layoutBottom1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="horizontal" 
         android:background="#FFFFFF" 
         android:gravity="center" 
       > 
      <CheckBox 
        android:id="@+id/checkBottom1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="AAAA" 
        android:visibility="visible" 
        android:textColor="#000000" 
        android:checked="true" 
        /> 

     </LinearLayout> 

jakieś pomysły? Dzięki!

Odpowiedz

5

Czy próbowałeś przejść przez here, here i here?
I jak za odpowiadając na pytanie

But why checkbox does not look okay in usual xml 

To dlatego czasami, android widok graficzny nie jest w stanie uczynić widoki niestandardowe, w tym przypadku trzeba uruchomić kod na emulatorze lub urządzeniu, aby go przetestować na zewnątrz.

UPDATE W przypadku, gdy nie chcesz korzystać z kanału alfa, a następnie można również zdefiniować rozciągliwej kształtu w XML jak

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" > 

     <solid android:color="#ffffff" > 
     </solid> 

     <stroke 
      android:width="2dp" 
      android:color="#ff0000" > 
     </stroke> 
<corners android:radius="5dp" /> 

    <padding 
     android:bottom="4dp" 
     android:left="4dp" 
     android:right="4dp" 
     android:top="4dp" /> 
    </shape> 
+1

W podglądzie IntelliJ Idea wszystko wygląda dobrze. Ale niewidoczne na Emulatorze i na urządzeniu. W swoich referencjach zmieniają kolor zaznaczenia. Ale chciałbym zmienić kolor obramowania pola – Niaz

+0

Musisz więc mieć plasterek na obramowanie pudełka. Pokrój jak na obrazie, który umieścisz w folderze do rysowania. – Antrromet

+0

dzięki, ale nie rozumiem. Co masz na myśli jako kawałek? – Niaz

42

Można użyć właściwości

android:buttonTint="what you want" ustawić pole wyboru granicę kolor.

+0

Caio Lucas Alcantara dzięki –

+17

Ale dostępne tylko z poziomu API 21 ... – alexscmar

+3

To również ustawia wnętrze pola wyboru. Nie tego chcesz! –

21

Jest za późno, aby odpowiedzieć, ale chciałbym podzielić się tym, co sprawdziło się dla mnie. Wklej poniżej kodu. Byłoby zmienić kolor CheckBox granicznej i textColor

styles.xml

<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar"> 
    <item name="colorControlNormal">#000</item> <!-- normal border color change as you wish --> 
    <item name="colorControlActivated">#000</item> <!-- activated color change as you wish --> 
    <item name="android:textColor">#FFFF3F3C</item> <!-- checkbox text color --> 
</style> 

teraz w main_activity.xml miejsce poniżej CheckBox kodu

<CheckBox android:id="@+id/check_agree" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:text="I agree" 
      android:theme="@style/MyCheckBox"/> <!-- here apply your checkbox style --> 

jeśli powyższy styl nie działa wtedy zamień motyw macierzysty parent="Theme.AppCompat.NoActionBar" z parent="Theme.AppCompat.Light". Mam nadzieję, że to zadziała.

+0

To działało dla mnie tylko wtedy, gdy wstawiłem elementy stylu w moim głównym stylu aplikacji. W każdym razie, dzięki! –

Powiązane problemy