2014-10-19 31 views
22

Il bordo della casella di controllo è invisibile su sfondo bianco.Come impostare il colore del bordo della casella di controllo

enter image description here

ho giocato con diversi parametri di colore senza successo. Ho bisogno del bordo nero della scatola. Sì, ci sono esempi per creare una casella di controllo personalizzata. In tutti gli esempi disegnabili la scatola normale è visibile all'interno di una nuova forma. E la forma disegnabile è stretta senza testo in Android: text = ""

enter image description here

Ma perché casella di controllo non sembra a posto in usuale 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> 

Tutte le idee? Grazie!

risposta

5

Hai provato a passare attraverso here, here e here?
E come per rispondere alla tua domanda

But why checkbox does not look okay in usual xml 

Ecco perché a volte, la visualizzazione grafica Android non è in grado di rendere i visualizzazioni personalizzate, in questo caso è necessario eseguire il codice sul emulatore o il dispositivo di provarlo su.

UPDATE Nel caso in cui non avete intenzione di usare drawable, allora si può anche definire la forma drawable in XML come

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

Nell'anteprima di IntelliJ Idea sembra a posto. Ma non visibile su emulatore e dispositivo. Nei tuoi riferimenti cambiano il colore del segno di spunta. Ma mi piacerebbe cambiare il colore del bordo della scatola – Niaz

+0

Quindi sarà necessario avere una sezione per il bordo della scatola. Taglia come in un'immagine che inseriresti nella cartella drawable. – Antrromet

+0

grazie, ma non capito. Cosa intendi come una fetta? – Niaz

42

È possibile utilizzare la proprietà

android:buttonTint="what you want" per impostare il confine casella di controllo colore.

+0

Caio Lucas Alcantara ringrazia –

+17

Ma disponibile solo dal livello API 21 ... – alexscmar

+3

Questo imposta anche l'interno della casella di controllo. Non quello che vuoi! –

21

È troppo tardi per rispondere ma vorrei condividere ciò che ha funzionato per me. Incolla sotto il codice. Sarebbe cambiare il colore CheckBox di confine e 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> 

ora nel tuo main_activity.xml posto sotto CheckBox codice

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

se sopra stile non funziona, allora sostituire il tema principale parent="Theme.AppCompat.NoActionBar" con parent="Theme.AppCompat.Light". Spero che funzionerebbe.

+0

Ha funzionato per me solo se ho inserito elementi di stile all'interno del mio stile dell'app principale. Comunque grazie! –

Problemi correlati