web-dev-qa-db-ja.com

チェックボックスの境界線の色を設定する方法

チェックボックスの境界は、白い背景では見えません。

enter image description here

私は成功せずに異なる色のパラメーターで遊んだ。ボックスの黒い境界線が必要です。はい、カスタムチェックボックスを作成する例があります。すべての描画可能な例では、通常のボックスは新しい形状の内側に表示されます。また、Android:text=""にテキストがない場合、描画可能な形状は狭くなります。

enter image description here

しかし、なぜ通常の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>

何か案は?ありがとう!

28
Niaz

プロパティを使用できます

Android:buttonTint="what you want"チェックボックスの境界線の色を設定します。

63

答えるのは遅すぎますが、私にとってうまくいったことを共有したいと思います。以下のコードを貼り付けます。 CheckBox境界線の色と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>

main_activity.xmlCheckBoxコードの下に配置します

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

上記のスタイルが機能しない場合は、親テーマを置き換えますparent="Theme.AppCompat.NoActionBar" with parent="Theme.AppCompat.Light"。それがうまくいくことを願っています。

28
IPL10

herehere 、および here を試してみましたか?
そしてあなたの質問に答えて

But why checkbox does not look okay in usual xml

これは、時々、Androidグラフィカルビューはカスタムビューをレンダリングできないためです。その場合、エミュレータまたはデバイスでコードを実行してテストする必要があります。

[〜#〜] update [〜#〜]ドロアブルを使用したくない場合は、次のようにxmlでドロアブル形状を定義することもできます。

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