如何在android中的开关中添加颜色到圆圈?

时间:2016-12-21 09:22:43

标签: android android-layout android-switch

我想创建一个类似于enter image description here

的开关

我以这种方式做到了

<LinearLayout
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Available"
        android:textColor="#82BCB4"
        android:textSize="20sp"
        />
    <Switch
        android:id="@+id/theSwitchId"
        android:textOn=""
        android:textOff=""
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:thumbTextPadding="5dp"
        android:switchMinWidth="90dp"
        android:layout_marginStart="40dp"
        android:minHeight="60dp"
        android:layout_gravity="center|center_vertical" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="UnAvailable"
        android:layout_marginStart="40dp"
        android:textColor="#224e6d"
        android:textSize="20sp"
        />
</LinearLayout>

我无法改变开关的高度,它不会在这张图片中看到它的样子。请帮帮我这个

4 个答案:

答案 0 :(得分:0)

在style.xml中

   <style name="switchCompatStyle">
        <item name="colorControlActivated">@color/colorPrimary</item>
    </style>

交换机的代码就像

 <android.support.v7.widget.SwitchCompat
                android:id="@+id/switch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="@dimen/_10sdp"
                app:theme="@style/switchCompatStyle" />

答案 1 :(得分:0)

您在drawable xml中创建Thumb: thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/ic_thumbselecter"/>
    <item android:drawable="@drawable/ic_thumbselecter"/>
</selector>

并进入开关(在我的情况下,我正在使用它):

<Switch
    app:kswThumbDrawable="@drawable/thumb"/>

答案 2 :(得分:0)

您需要做的只是使用自定义drawable作为开关曲目

这是自定义drawable的代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
    <shape android:shape="rectangle">
        <corners
            android:radius="@dimen/_40sdp" />
        <solid
            android:color="@android:color/darker_gray" />
        <padding
            android:bottom="@dimen/_5dp"
            android:left="@dimen/_5dp"
            android:right="@dimen/_5dp"
            android:top="@dimen/_5dp" />
    </shape>
</item>

进一步对现有布局进行这些修改 添加 android:thumbTint =&#34; @android:color / holo_blue_dark&#34; 或任何符合您要求的颜色

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Available"
    android:textColor="#82BCB4"
    android:textSize="20sp" />

<Switch
    android:id="@+id/theSwitchId"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_gravity="center|center_vertical"
    android:layout_marginStart="40dp"
    android:minHeight="60dp"
    android:switchMinWidth="90dp"
    android:textOff=""
    android:textOn=""
    android:thumbTextPadding="5dp"
    android:thumbTint="@android:color/holo_blue_dark"
    android:track="@drawable/track_background" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="40dp"
    android:text="UnAvailable"
    android:textColor="#224e6d"
    android:textSize="20sp" />

希望这会有所帮助

点击此处查看生成的屏幕截图

screenshot

答案 3 :(得分:0)

使用以下方法更改拇指(开关上的圆圈)颜色:

  db:
    image: postgres
    container_name: mgt_db
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_DB: mgtdb
      POSTGRES_HOST_AUTH_METHOD: trust
    ports:
      - 5432:5432
  db2:
    image: postgres
    container_name: pay_vault_db 
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_DB: payvaultdb
      POSTGRES_HOST_AUTH_METHOD: trust
    ports:
      - 5433:5432

在您的colors.xml上:

android:thumbTint="@color/thumbColor"