一种实现安卓系统应用程序中按钮效果的方法和系统与流程

文档序号:11653975阅读:170来源:国知局

本发明涉及用户界面编辑技术领域,更具体地,涉及实现安卓系统应用程序中按钮效果的方法和系统。



背景技术:

在应用程序开发过程中,开发者经常会使用到图片文件,但是过多的使用图片文件会导致内存增加,导致安装包过大等一系列问题。

常规开发通常会使用图片文件来制作按钮,因此图片文件过多同样带来上述一系列的问题出现。

常规开发通常使用按钮控件(button)制作按钮,按钮控件使用图片的方式来展示按钮信息,不仅加载速度慢,内存占用和处理效率也存在很大程度的损耗。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的实现安卓系统应用程序中按钮效果的方法和系统。

根据本发明的一个方面,提供一种实现安卓系统应用程序中按钮效果的方法,包括:

s1、通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

s2、当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

根据本发明的另一方面,提供一种实现安卓系统应用程序中按钮效果的系统,包括:

绘制模块,用于通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

切换模块,用于当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

本申请提出一种利用文本控件模拟按钮控件,以实现安卓系统应用程序中按钮效果的方法和系统,通过xml的方式实现背景信息和文字信息跟随文本控件textview的状态变化而变化,大大提高了本按钮设计的可变性,能够方便后期动态调整,同时极大的提高程序的显示速度,降低内存损耗。

附图说明

图1为根据本发明实施例的实现安卓系统应用程序中按钮效果的方法流程图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

为了克服现有技术中使用按钮控件(button)制作按钮,按钮控件使用图片的方式来展示按钮信息,导致的加载速度慢,内存占用和处理效率存在很大程度的损耗的问题,本发明提供了一种将文本控件textview模拟成按钮控件,以实现安卓系统应用程序中按钮效果的方法。

android中常用的文本控件不外乎两种,textview与edittext。其中,textview主要是在android中实现文字说明等功能。本发明通过文本控件textview实现按钮效果。

图1示出了本发明实施例的实现安卓系统应用程序中按钮效果的方法流程图,该方法包括:

s1、通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

s2、当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

文字信息显示在背景信息之上,当文本控件textview的状态改变时,背景信息和文字信息也随之改变,达到按钮的显示效果。未选择的状态即为鼠标、手指或其他可在ui(显示界面)上进行定位的指示装置未在显示界面上触及该按钮,选择但未点击的状态即为鼠标、手指或其他可在ui(显示界面)上进行定位的指示装置在显示界面上触及该按钮但未点击的状态,选择并点击状态即鼠标、手指或其他可在ui(显示界面)上进行定位的指示装置在显示界面上进行点击的状态。点击既可以是按下动作也可以是弹起动作,也可以是滑动动作,本实施例及后续实施例对此不作具体限定。

为了便于理解,以斗鱼直播的安卓客户端中“热门”和“附近”按钮为例,热门表示当前所有直播节目中观看人数较多的直播节目,附近表示在使用者的地理位置附近进行直播的直播节目。现有技术中,“热门”和“附近”按钮采用button控件绘制图片,该图片显示有“热门”和“附近”字样。本发明采用xml个数的状态选择器来绘制文本控件textview的背景信息和文字信息。将背景信息设置为某一颜色,文字信息(“热门”和“附近”)设置为另一颜色,使用者在感官上不会感觉到用文本控件制作的按钮与常规的按钮控件制作的按钮在静态上的区别,通过状态选择器绘制文本控件textview在不同状态下的背景信息和文字信息,使得使用者在感官上不会感觉到用文本控件制作的按钮与常规的按钮控件制作的按钮在动态上的区别。

在一个实施例中,步骤s1包括:创建第一xml文件,向所述第一xml文件配置选择状态以及对应选择状态的所述背景信息,获得xml格式的第一状态选择器;以及

创建第二xml文件,向所述第二xml文件配置选择状态以及对应选择状态的所述文字信息,获得xml格式的第二状态选择器;

其中,所述选择状态为所述文本控件textview的状态。

xml文件意为可扩展标记语言,是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。状态选择器具有选择不同状态的能力,可以根据不同的状态实现不同的展示信息。例如,状态选择器可以根据使用者是否点击按钮,改变背景颜色和字体颜色,或者改变背景的形状和字体的字号大小,本实施例及后续实施例对此不作具体限定。由于本发明是通过改变文本控件的背景和文字信息,产生视觉上的动态变换效果,要比现有技术采用改变图片的方式占用的内存更小,可变性更强。

在一个实施例中,状态选择器还用于:监控文本控件textview的状态;其中,所述步骤s1和s2之间还包括:监控所述文本控件textview的状态。只有状态选择器被触发时,才会发生背景信息和文字信息的改变。

在一个实施例中,所述背景信息包括背景形状的子信息、背景边框宽度的子信息以及背景颜色的子信息。

在一个实施例中,向所述第一xml文件配置对应选择状态的所述背景信息,包括:

通过形状调整语句,设置所述文本控件textview在不同状态下的背景形状。常用的背景形状包括圆形、三角形、矩形、菱形以及不规则多边形等等,还可以进一步设置圆角以及圆角的半径,使背景信息更加美观。

通过边框调整语句,设置所述文本控件textview在不同状态下背景边框的宽度;或

通过背景颜色调整语句,设置所述文本控件textview在不同状态下的背景颜色。

其中,所述文本控件textview切换状态后,所述背景信息中至少一种子信息与切换状态前相比具有差异。例如,在未选择状态,背景形状为矩形,背景颜色为红色;在点击状态,背景形状为三角形,背景颜色为蓝色。

在一个实施例中,向所述第二xml文件配置对应选择状态的所述字体信息,包括:通过文字颜色调整语句,设置所述文本控件textview在不同状态下的字体颜色的色值;所述字体颜色的色值在所述文本控件textview在不同状态下具有差异。例如,色值可以用十六进制表示(argb的方式来表示色值),argb是一种色彩模式,也就是rgb色彩模式附加上alpha(透明度)通道,常见于32位位图的存储结构。

在一个实施例中,所述文本控件textview在任一状态下的背景颜色和字体颜色具有差异。这样设置有利于区分背景和文字,方便使用者点击。

在一个实施例中,步骤s1之前还包括:

s0、设置所述文本控件textview的唯一编号(id),所述唯一编号用于后续的java代码和所述文本控件textview进行绑定,后期只需输入该文本控件textview的唯一编号,就可以进行调用,提高了开发效率。

在一个实施例中,步骤s0和s1之间还包括:基于所述文本控件textview的宽度属性和高度属性,分别设置所述文本控件textview的宽度信息和高度信息。

在一个实施例中,所述步骤s1还包括:基于所述文本控件textview的文字居中属性,将所述文字信息居中设置在背景信息上。

设置文本控件textview的唯一编号(id)可以通过android:id="@+id/tv_hot"这条语句来实现,该语句表示给文本控件textview声明一个id号,id为tv_hot。该id号用于后续的java代码和textview控件进行绑定使用

通过所述文本控件textview的宽度属性android:layout_width="37dp",可以设置文本控件textview的宽度信息的宽度为37dp,通过所述文本控件textview的高度属性android:layout_height="22dp",可以设置文本控件textview的高度信息为22dp。dp原来是印刷上的记量单位,意思是每英寸上,所能印刷的网点数(dotperinch)。

设置背景信息可以通过android:background="@drawable/nf_selector_hot_bg"方法来实现,其中nf_selector_hot_bg主要是描述了按钮的背景颜色的变化,当点击和非点击状态下的按钮的形态的变化。nf_selector_hot_bg是一个selecter(选择器),选择器具有选择不同状态的能力,可以根据不同的状态实现不同的展示信息。

实现文本控件textview背景颜色的展示具体的实现方式包括:

为了能够获取到selecter的选择状态,本实施例通过itemandroid:state_pressed="true",来进行选择,这条语句的功能是当textview被按下的时候进行触发。

为了将背景设置为矩形,本实施例是通过shapeandroid:shape="rectangle"来进行设置的,这条语句表明文本控件textview的背景是一个矩形图案。

为了设置边框的粗细程度,本实施例通过strokeandroid:width="0.5dp"属性来进行设定,android:width="0.5dp"表示的是文本控件textview的边框是0.5dp宽。

进一步地,为了背景更加美观,本实施例设置cornersandroid:bottomleftradius="2dp"android:topleftradius="2dp"来实现圆角边框,topleftradius表明该矩形的下左脚为圆角,该圆角的半径为2dp。矩形的上左脚为圆角的半径为2dp。

通过设置solidandroid:color="@android:color/white"属性来进行设定背景颜色。white即表示该填充颜色为白色,当按下的时候textview控件的背景是白色的。

接下来将未按下时的信息描述如下,具体的绘制描述信息和上述类似。

代码说明:

由上述说明可知,按钮的背景在按下时为白色,选择但未点击时为橙色,实现了颜色的切换。通过使用strokecornerssolid等属性组合的方式将一个textview控件绘制成为了一个目标需求的图形。通过textview文本控件来模拟了按钮控件的实现。

通过android:gravity="center"属性来将文字进行居中设置。

为了能够将文字信息展示出来,本实施例是通过设置android:text="热门"属性的方法来实现的,“热门”和“附近”文字信息的实现方式相同。

根据本发明的设计思路,文字是具有文字颜色的,并且文字的颜色和文字所处的状态时有关系的。当点击下去的时候文字是一种颜色,当抬起的时候文字是另一种颜色,为了设置文字的颜色属性,一个实施例是通过android:textcolor="@drawable/nf_selector_hot_near_text"来实现的。其中nf_selector_hot_near_text是文字不同状态的描述文件,该文件是通过是一个xml文件,nf_selector_hot_near_text这个文件的实现方式我们后续会给出详细的分析和说明。

nf_selector_hot_near_text主要描述了textview的文本属性的变化,描述了textview控件按下和非按下状态下的文字信息的变化情况,为了实现文本控件textview的选择功能,需要实现一个selector选择器。以下将详细描述具体的实现方法。

为了实现文字颜色的变化,本发明需要实现一个selector,该selector需要去监听文本控件textview的按下和抬起状态。在一个实施例中,通过selectorxmlns:android=http://schemas.android.com/apk/res/android来实现selector的,该实现表明nf_selector_hot_near_text是一个selector选择器,选择器有一个特点就是能够监听按下或者抬起等事件信息,这样就能够通过selector监听到的不同的事件信息来做出不同的实现处理。

为了让selector监听文本控件textview的状态,通过<itemandroid:color="#ff7700"android:state_pressed="true"/>来实现的,该方法表示的意思是当按下的时候,文字的颜色的色值为ff7700,这种色值是十六进制表示的(argb的方式来表示色值)。

state_selected状态的监听形式是如下方式来实现的<itemandroid:color="#ff7700"android:state_selected="true"/>,该实现表示当我们选择到该文字的时候,文字的颜色的色值为ff7700,这种色值是十六进制表示的(argb的方式来表示色值)。

除了上述两种状态以外,剩下的状态均通过<itemandroid:color="#ffffff"/>来进行指定的,其他所有状态下文本控件textview的文字颜色是ffffff,即为白色。

通过选择器来动态的实现文字颜色的改版,配合上述nf_selector_hot_bg文件一起就能够动态的实现一个自定义xml形式的textview控件了。本发明将textview控件模拟成按钮控件,没有使用传统的图片方式来实现。有效的解决了传统方式图片文件多容易引起的内存增加,安装包大等一系列问题。并且由于背景和文字的绘制文件分离,能够实现更多效果的组合。

为了设置文字的字号信息,一个实施例是通过设置android:textsize="14dp"属性来进行设置的。

本发明还提供一种实现安卓系统应用程序中按钮效果的系统,包括:

绘制模块,用于通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

切换模块,用于当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

在一个实施例中,绘制模块还用于:创建第一xml文件,向所述第一xml文件配置选择状态以及对应选择状态的所述背景信息,获得xml格式的第一状态选择器;以及

创建第二xml文件,向所述第二xml文件配置选择状态以及对应选择状态的所述文字信息,获得xml格式的第二状态选择器;

其中,所述选择状态为所述文本控件textview的状态。

在一个实施例中,本发明公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:

s1、通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

s2、当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

在一个实施例中,本发明公开了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:

s1、通过xml格式的状态选择器绘制对应文本控件textview在不同状态下的背景信息和文字信息;以及

s2、当所述文本控件textview的状态改变时,将所述背景信息和文字信息切换至对应当前文本控件textview的状态;

其中,所述文本控件textview的状态为以下可选状态中的至少2种状态;所述以下可选状态包括:未选择的状态、选择但未点击的状态以及选择并点击的状态。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1