本发明涉及交互界面设计技术领域,具体说是一种提示网络加载进度的交互按钮的实现方法。
背景技术:
现有的交互界面(例如app中的交互界面,网页中的交互界面,等等),在向远端提交数据时,都需要至少一个按钮用于发出提交请求。
向远端提交数据需要经过网络,因此一般都需要一定的时间来等待、获取返回信息(提交结果),在此期间需要屏蔽用户继续点击以免发送多次提交请求。
在android系统中,提供了button点击按钮控件,但是不能根据提交时的不同状态进行ui相应的更新,也不能很好的避免用户多次点击。需要进一步对按钮控件进行优化。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种提示网络加载进度的交互按钮的实现方法,自定义按钮控件,能提示网络加载的过程和结果,能避免用户多次点击导致的发送多次提交请求,减轻系统开销,提升交互效果,增强网络交互的管理及体验,提高了app的开发效率。
为达到以上目的,本发明采取的技术方案是:
一种提示网络加载进度的交互按钮的实现方法,其特征在于,包括如下步骤:
自定义提示网络加载进度的交互按钮类submitview,用来绘制按钮及在按钮中呈现网络加载的过程和结果,
网络加载的过程用于向用户呈现提交状态,
网络加载的结果用于向用户呈现提交结果;
设定画笔paint类及颜色;
设定不同提交状态及提交结果对应的提示文字;
设定默认的按钮的绘制参数,至少包括:
背景,
控件的宽高值,
控件的倒角角度;
定义以下变量,用来控制按钮的交互响应:
变量mcanclick,用来控制按钮的点击事件,
定义变量mifreset,用来控制按钮的重置事件;
重写onlayout方法,获取控件的宽高值,计算控件的倒角角度,获取画笔的宽度;
定义接口onprogressdone和其中的抽象方法progressdown,用来监听回调加载成功后的操作,
定义接口onprogressstart和其中的抽象方法progressstart,用来监听回调开始加载的过程;
定义方法drawinit,用来绘制初始控件的状态,呈现圆角矩形按钮;
定义方法drawfirst,用来改变背景和字体的颜色,呈现圆形进度条;
定义方法onclick,用来处理点击事件;
定义方法drawcorrectsign,用来绘制成功提交控件的状态,呈现带对号的圆角矩形;
重写ondraw方法,根据当前不同的状态标识绘制图形,具体包括:
初始状态,绘制圆角矩形按钮,在按钮中呈现提示点击的文字,
网络加载状态,绘制圆形进度条,呈现网络加载的过程,
提交成功状态,绘制带对号的圆角矩形,在圆角矩形中呈现对号,提示提交成功。
在上述技术方案的基础上,按钮的绘制参数还包括:
边框内边距,用于控制文字和边框的间隙,
在重写onlayout方法时,控件的宽高值减去边框内边距,即为内容区域的宽和高。
在上述技术方案的基础上,定义枚举anistate,用来控制按钮的交互状态,枚举值包括:
init,初始状态,
first_start,背景和字体颜色开始改变,
first_stop,背景和字体颜色改变结束,
second_start,字体大小开始改变,
second_stop,字体大小改变结束,
third_start,圆角矩形按钮转变圆形进度条,
third_stop,已完成转变圆形进度条,
fourth_start,圆形进度条呈现进度,
fourth_stop,已完成呈现进度,
fifth_start,圆形进度条转变带对号的圆角矩形,
fifth_stop,圆角矩形按钮转变带对号的圆角矩形。
在上述技术方案的基础上,在方法onclick中,通过布尔数据类型的变量mcanclick,判断是否可以点击,当点击一次后,则把mcanclick设置为不可点击,
通过android系统提供的view类中的方法invalidate来重新绘制控件。
本发明所述的提示网络加载进度的交互按钮的实现方法,自定义按钮控件,能提示网络加载的过程和结果,能避免用户多次点击导致的发送多次提交请求,减轻系统开销,提升交互效果,增强网络交互的管理及体验,提高了app的开发效率。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的提示网络加载进度的交互按钮的实现方法,包括如下步骤:
自定义提示网络加载进度的交互按钮类submitview,用来绘制按钮及在按钮中呈现网络加载的过程和结果,
网络加载的过程用于向用户呈现提交状态,
网络加载的结果用于向用户呈现提交结果;
设定画笔paint类及颜色;
设定不同提交状态及提交结果对应的提示文字;
设定默认的按钮的绘制参数,至少包括:
背景,
控件的宽高值,
控件的倒角角度;
定义以下变量,用来控制按钮的交互响应:
变量mcanclick,用来控制按钮的点击事件,
定义变量mifreset,用来控制按钮的重置事件;
重写onlayout方法,获取控件的宽高值,计算控件的倒角角度,获取画笔的宽度;
定义接口onprogressdone和其中的抽象方法progressdown,用来监听回调加载成功后的操作,
定义接口onprogressstart和其中的抽象方法progressstart,用来监听回调开始加载的过程;
定义方法drawinit,用来绘制初始控件的状态,呈现圆角矩形按钮;
定义方法drawfirst,用来改变背景和字体的颜色,呈现圆形进度条;
定义方法onclick,用来处理点击事件;
定义方法drawcorrectsign,用来绘制成功提交控件的状态,呈现带对号的圆角矩形;
重写ondraw方法,根据当前不同的状态标识绘制图形,具体包括:
初始状态,绘制圆角矩形按钮,在按钮中呈现提示点击的文字,
网络加载状态,绘制圆形进度条,呈现网络加载的过程,
提交成功状态,绘制带对号的圆角矩形,在圆角矩形中呈现对号,提示提交成功。
在上述技术方案的基础上,按钮的绘制参数还包括:
边框内边距,用于控制文字和边框的间隙,
在重写onlayout方法时,控件的宽高值减去边框内边距,即为内容区域的宽和高。
在上述技术方案的基础上,定义枚举anistate,用来控制按钮的交互状态,枚举值包括:
init,初始状态,
first_start,背景和字体颜色开始改变,
first_stop,背景和字体颜色改变结束,
second_start,字体大小开始改变,
second_stop,字体大小改变结束,
third_start,圆角矩形按钮转变圆形进度条,
third_stop,已完成转变圆形进度条,
fourth_start,圆形进度条呈现进度,
fourth_stop,已完成呈现进度,
fifth_start,圆形进度条转变带对号的圆角矩形,
fifth_stop,圆角矩形按钮转变带对号的圆角矩形。
在上述技术方案的基础上,在方法onclick中,通过布尔数据类型的变量mcanclick,判断是否可以点击,当点击一次后,则把mcanclick设置为不可点击,
通过android系统提供的view类中的方法invalidate来重新绘制控件。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。