博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
风格化的ToggleButton
阅读量:6800 次
发布时间:2019-06-26

本文共 1466 字,大约阅读时间需要 4 分钟。

hot3.png

目标: 

Android到默认UI比iOS到默认UI在美观程度上还是有一定到差距的,我们希望能够美化UI,并且替换掉系统默认的UI风格,使得程序在使用这些UI的时候都默认使用我们自定义到UI。本文以ToggleButton为例,介绍如何使用,下图是效果图。

03143824_VUsG.gif

步骤: 

1、设置XML属性

我们需要设置ToggleButton的背景,以及当ToggleButton为on或者off时到状态图。

首先,我们设置ToggleButton的背景,建立 /res/drawable/btn_toggle_bg.xml

  
      
      
  

在这里,我们使用layer-list把ToggleButton分成2个图层,底层是背景(设置成透明),顶层是selector效果图

接下来,设置ToggleButton的on和off的selector效果图:

建立/res/drawable/btn_toggle.xml

  
      
      
  

使用到以下两张图,也可通过以下链接查找

03143824_Dpn8.gif 03143824_ZHwc.gif

到此,我们已经把ToggleButton的效果已经制作完毕.

2、设置Style & Theme

ToggleButton到效果图已经制作完毕,接下来,我们就要把这种效果设置成一种统一的风格,否则我们在使用的时候必须每次都得显示指定这种风格,在这里,即:在声明ToggleButton的时候,每次都得指定android:background="@drawable/btn_toggle_bg"。

我们希望达到到效果是,当我们每次使用ToogleButton的时候,默认就是使用我们所设置的风格。在此之前,最好先阅读下android自带到文档:,对style和theme有一定的了解。

接下来,建立/res/drawable/themes.xml文件

      
@drawable/btn_toggle_bg      
@null      
@null      
true      
?android:attr/disabledAlpha  

在这里,要把textOn和textOff的属性设置为null,否则,系统会在按钮上显示文字,这个可根据使用情况而定。

然后,把该风格设置成主题

      
      
@style/Widget.Button.Toggle      
  

之后,只需要在AndroidManifest.xml的<application>标签里设置主题即可(android:theme="@style/YourThemeName")

3、注意事项

<重要>为了提供更通用到效果,应该把图片设置成.9.png格式,使图片可扩展

很多人都以疑问,到底如何知道这些控件或者主题到属性? 这些都在Android到源代码里面可以找到,具体位置在\base\core\res\res\values\里

项目源码下载:

转载于:https://my.oschina.net/u/2502527/blog/596463

你可能感兴趣的文章
域名绑定,解析总结
查看>>
JAVA 网络长短连接
查看>>
transform,transition,animation 的混合使用——进阶
查看>>
【网络流】 HDU 3468 Treasure Hunting
查看>>
foobar2000播放APE格式音乐的解决办法
查看>>
Spring+Quartz实现定时任务的配置方法(插曲)
查看>>
一个基于cocos2d-x 3.0和Box2d的demo小程序
查看>>
(转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
查看>>
struts2前端页面读取Clob/BLOB
查看>>
【MongoDB】深入了解MongoDB不可不知的十点
查看>>
[ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)
查看>>
又一次发现Oracle太美之glogin.sql
查看>>
hdu5387 Clock
查看>>
安装redis出现cc adlist.o /bin/sh:1:cc:not found
查看>>
初步认识Tensorflow
查看>>
tab 切换实现方法
查看>>
leetcode-First Missing Positive
查看>>
自抛球练习
查看>>
C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍
查看>>
前端网页开发常用的问题定位方法
查看>>