1. 程式人生 > >安卓修改RadioButton圓圈樣式(非直接圖片替換)

安卓修改RadioButton圓圈樣式(非直接圖片替換)

用Android Studio做安卓開發的時候,使用RadioButton會有系統預設樣式,比如:在unchecked狀態下是黑色邊框+空心圓樣式;checked狀態下是粉紅色邊框+中間一個粉紅色原點(如下)。

  

但是有時候我們想要改變前面圓圈的樣式,那麼怎麼修改呢?

可能很多同學網上找到的解決方案,大都是在/drawable下新建一個radio**.xml檔案,在<selector>下的<item>下設定當android:state_checkedtrue/false時,設定android:drawable/drawable下的不同狀態的圖片。

那麼問題來了,如果我並沒有兩種狀態的圖片,比如只是想改一下邊框顏色、點選後的顏色

這些呢?

其實原理也很簡單,而且跟上面的圖片替換也很類似,不過上面的是替換/drawable資料夾下的圖片,這裡介紹的方法是替換/drawable資料夾下的.xml樣式檔案。步驟如下:

1、先在/drawable資料夾下建立RadioButton狀態切換檔案,比如radio_button_style.xml

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

    <item
        android:state_enabled="true"
        android:state_checked="false"
        android:drawable="@drawable/radiobtn_unchecked_style"
        />

</selector>
<selector>標籤下的兩個<item>標籤分別定義兩種狀態:checked和unchecked(從上面的state_checked反映)。當被checked時,RadioButton切換到radiobtn_checked_style狀態;否則,切換radiobtn_unchecked_style狀態。

2、好了,上面兩個狀態其實是/drawable資料夾下的兩個.xml佈局檔案radiobtn_checked_style.xml和radiobtn_unchecked_style.xml。以下分別是兩個佈局檔案的程式碼:

radiobtn_checked_style.xml:


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

    <solid
        android:color="@color/buttonColorIn"/>

    <size
        android:height="@dimen/pswRadioButtonWidth"
        android:width="@dimen/pswRadioButtonWidth"/>

    <stroke
        android:width="@dimen/pswRadioButtonStrokeWidth"
        android:color="@color/buttonStroke"/>


</shape>

radiobtn_unchecked_style.xml

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

    <solid
        android:color="@color/buttonColor"/>

    <size
        android:height="@dimen/pswRadioButtonWidth"
        android:width="@dimen/pswRadioButtonWidth"/>

    <stroke
        android:width="@dimen/pswRadioButtonStrokeWidth"
        android:color="@color/buttonStroke"/>

</shape>
 (1)根標籤必須改為<shape>

    (2)<size>標籤,定義RadioButton的大小(寬高)

    (3)<corners>標籤,定義原來矩形4個直角的完全程度(與width/heigth一致則為圓角)

    (4)<solid>為中間填充顏色

    (5)<stroke>為邊框屬性

    (當然shape還有一些其他屬性,在這裡沒用上就沒寫出來)

3、好了,定義好佈局,最後在整體佈局的RadioButton下把狀態切換檔案radio_button_style.xml加到android:button屬性下即可。比如:

<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pswRadioBtn1"
        android:layout_marginTop="20dp"
        android:checked="false"
        android:layout_below="@+id/hintText"
        android:layout_alignEnd="@+id/button1"
        android:clickable="false"
        android:button="@drawable/radio_button_style" />


4、最後展示一下我寫的RadioButton,在沒有新增切換圖片下的自定義效果:

unchecked:


checked:


很像iOS的效果是不是!!

相關推薦

修改RadioButton圓圈樣式直接圖片替換

用Android Studio做安卓開發的時候,使用RadioButton會有系統預設樣式,比如:在unchecked狀態下是黑色邊框+空心圓樣式;checked狀態下是粉紅色邊框+中間一個粉紅色原

修改radiobutton圓圈樣式

用Android Studio做安卓開發的時候,使用RadioButton會有系統預設樣式,比如:在unchecked狀態下是黑色邊框+空心圓樣式;checked狀態下是粉紅色邊框+中間一個粉紅色原點(如下)。    但是有時候我們想要改變前面圓圈的樣式,那麼怎麼修改呢?

unity包大小壓縮優化146M優化到83M

想要壓縮包大小,首先得知道打包出來的各個資源的大小,明確知道哪些資源佔用大,可以通過如下操作開啟Editor.log(可能需要先輸出一遍安卓包) 1、在Unity Console介面右上角點開Open Editor Log 2、壓縮包的辦法就是把每個圖片都設定packi

APP底部導航欄有訊息圓點指示器,實現fragment切換eclipse

本專案使用了相對佈局和單選按鈕實現了安卓app常見的底部導航欄(帶有訊息圓點指示器),效果如果所示 一、佈局程式碼如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi

JQ 實現點選連結滾動到指定位置。直接跳轉

平時我們做網頁時都會使用<a>來建立連結,再用href屬性來定位,使我們點選時網頁能夠到達我們所希望到達的位置。但是如果直接點選的話,網頁會瞬間跳轉(閃現)到指定位置。但一些情況下這樣的效果並不理想,無法進行平滑的過渡。這時候使用jQuery,可以達到我們所需的效

直接利用函式python繪製灰度影象直方圖及其均衡化

由於學習的需要,利用python和opencv實現簡單的灰度圖直方圖繪製及其均衡化 。程式碼如下import cv2 as cv import numpy as np from matplotlib import pyplot as plt #畫直方圖 def zhifan

修改手機機型

三方 lte 特定 roi 校驗 量變 了解 創建 而且 韓夢飛沙 韓亞飛 [email protected] yue31313 han_meng_fei_sha 目前 市面上你能買到的一些安卓刷量變機工具例如 008K、變機寶等等 使用的都是XPOSED

修改開機logo

文件系統 relative 編譯 top 文件 var sig 安卓 works 這裏我們是在ubuntu下進行操作我是用root用戶登陸的,首先安裝netpbm庫 執行:apt-get install netpbm 對於Android系統最開始表現logo

手機GPU OpenCL總結

性能 網上 gin bsp 策略 測試的 公司 ocl adding 前段時間,把市面上手機GPU OpenCL支持情況做了一個總結。總結如下: 目前,手機 GPU 市面有四個公司產品:Qualcomm, Imagination Technologies,ARM, Viva

文件存儲

tostring rate 存儲 gen ide import ins troy ace package com.example.sql_file_Input; import java.io.BufferedWriter;import java.io.FileOutputS

自動化測試:Robotium測試demo

for 切換 ini too demo edittext pin dex bsp 1、下載Robotium打開: http://code.google.com/p/robotium/下載:robotium-solo-3.4.1.jar (寫測試用例時需要依賴此包)2、需要把

介面基礎知識總結:RelativeLayout佈局的常見屬性

1.android:layout_above="@id/xxx"  --將控制元件置於給定ID控制元件之上   android:layout_below="@id/xxx"  --將控制元件置於給定ID控制元件之下 2.android:layout_marginLe

介面基礎知識總結:LinearLayout佈局的常見屬性

之前做專案都是用到了才會查詢自己所需的,沒有系統總結一下,也沒有特意去記,面試的時候被問到了居然不知道,-_-|| 決定開始系統總結一下: 1. android:orientation:設定線性佈局是水平還是豎直排列,可能選項如下: 1)vertical,豎直 2)horizontal,水

自定義switch樣式

榮耀手機鬧鐘開關的switch樣式,最近簡單的方法可以直接設定兩張圖片,根據按鈕狀態來進行切換。 這裡主要說另外一種方式 首先建立兩個track的資原始檔,也就是後面的背景 建立未開啟狀態下的track起名為track_bg_gray <?xml version="1.0

基礎之主題/樣式

style.xml 主題樣式 建立 activit 定義 ati 組件 主題 似的 安卓基礎之主題/樣式 樣式:一般作用在控件上,使多個控件擁有相同風格 主題:一般作用清單文件的activity或application結點下 樣式Style的使用 系統自動在

視訊播放器——ijkPlayerBilibili開源

作為一個B站(Bilibili)使用者,特別喜歡B站的播放器 湊巧,發現了b站的github的地址。。嘿嘿。。B站github地址f 發現了ijkplayer播放器,支援android 和ios 我們用AndroidStudio新建project名字是bilibili_ijkplay

網頁無法使用微信瀏覽器開啟手機:該證書並非來自可信賴的授權中心

生成二維碼的時候發現網頁無法在微信瀏覽器裡開啟,檢查了二維碼對應的URL連結沒有錯誤,在CHROME裡也能開啟,用安卓自帶的手機瀏覽器開啟時,提示:該證書並非來自可信賴的授權中心。 使用這個SSL檢查站檢查,發現前四項正常,第五項報錯:A valid Root CA Certificate

Apk通過修改大師加固的內部邏輯揭祕

一、前 言 Android Apk加固的發展已經有一段時間了,相對來說本文要記錄的Android加殼的實現思路是4年的東西了,已經被老鳥玩爛了,Android加固的安全廠商也不會採用這麼粗獷的方式來進行Android Apk的加固處理。早期Android加固聚焦的兩個點主要

自學筆記第一彈有點凌亂QAQ

安卓學習筆記 第一章: (1):HelloWorld 1.分析安卓專案結構: 主要開發工作在app目錄下進行(在此主要記錄此目錄); bulid:包含編譯時自動生成的檔案 libs:如果使用第三方jar包,需放在該目錄下,其會自動新增到構建路勁中去 andro

自定義彈框Dialog

  1.在style檔案中建立一個style <style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</