CN105808218A - 一种针对用户界面ui控件效果的绘制方法和装置 - Google Patents
一种针对用户界面ui控件效果的绘制方法和装置 Download PDFInfo
- Publication number
- CN105808218A CN105808218A CN201410848584.8A CN201410848584A CN105808218A CN 105808218 A CN105808218 A CN 105808218A CN 201410848584 A CN201410848584 A CN 201410848584A CN 105808218 A CN105808218 A CN 105808218A
- Authority
- CN
- China
- Prior art keywords
- shadertextview
- control
- class
- subclass control
- drafting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Generation (AREA)
Abstract
本申请实施例提供了一种用户界面UI控件的绘制方法和装置,所述的方法包括:生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。本申请实施例通过代码逻辑绘制控件,并不需要加载阴影效果的图片,减少了对图片资源的依赖,减少不必要的内存消耗,提高系统运行的效率,绘制的效果也更加自然,而且,并不需要重新计算控件之间的位置关系,避免了出现错位的情况。
Description
技术领域
本申请涉及多媒体数据处理技术领域,特别是涉及一种针对用户界面UI控件效果的绘制方法和一种针对用户界面UI控件效果的绘制装置。
背景技术
智能电视是顺应电视机“高清化”、“网络化”、“智能化”的趋势而出现的一种智能多媒体终端,具备从因特网、视频设备、计算机等多种渠道获得节目内容,通过简单易用的整合式操作界面将消费者最需要的内容在大屏幕上清晰地展现的功能。与传统电视的应用平台相比,智能电视可实现网络搜索、网络电视、视频点播(VOD)、数字音乐、网络新闻、网络视频电话等各种应用服务。
随着智能交互电视的发展,为了提高用户的体验效果,大量基于UI(UserInterface,用户界面)的图形图像特效得到应用。为了使图形图像具有更高的仿真度,经常会对用户界面中的图形图像进行阴影处理,从而更接近真实生活的显示对象。
目前,基于UI的图形图像的阴影效果实现方式主要采用在TextView控件之上叠加ImageView控件图片浮层,通过在ImageView控件中加载具有阴影效果的图片。由于在系统运行时需要进行图片资源加载,会造成系统资源耗费较大的情况,甚至会造成UI图形图像的卡顿。而且,现有的阴影效果实现方式,通过控件与控件之间位置的叠加效果,需要计算多控件之间的位置关系,当系统分辨率调整时,将会造成UI图形图像显示错乱的问题,造成使用方式不灵活的问题。另外,由于所述具有阴影效果的图片是通过电脑制作后,加载到ImageView控件上的,其阴影效果的精细程度依赖于制作时的美工的切图效果,图片最终需要在电视上显示,电视的显示效果与电脑存在差异,会造成阴影效果渐变不自然,影响用户的体验。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种针对用户界面UI控件效果的绘制机制,以解决对用户界面的对象生成阴影效果时,造成系统资源耗费较大,容易会造成用户界面的图形图像显示错乱,以及阴影效果渐变不自然的技术问题。
发明内容
本申请实施例所要解决的技术问题是提供一种用户界面UI控件的绘制方法,以解决对用户界面的对象生成阴影效果时,造成系统资源耗费较大,以及阴影效果渐变不自然的技术问题。
相应的,本申请实施例还提供了一种用户界面UI控件的绘制装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种用户界面UI控件的绘制方法,包括:
生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
优选的,所述预置的渲染信息包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制包括完成所述子类控件ShaderTextView阴影效果的绘制。
优选的,所述采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制的步骤包括:
在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
优选的,所述渲染方式包括线性渐变LinearGradient,所述渲染器行为包括夹持CLAMP,所述在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为的子步骤包括:
在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
优选的,所述绘制工具信息包括所述子类控件ShaderTextView类中的画笔类Paint,所述从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中的子步骤包括:
从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
优选的,所述采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制的子步骤包括:
从所述子类控件ShaderTextView中获取画布类Canvas,将图像合成方式,以及,画布范围配置到所述画布类Canvas中;
将所述实例化的画笔类Paint与所述画布类Canvas进行关联,完成所述子类控件ShaderTextView的绘制。
优选的,所述渲染方式还包括:图像渲染BitmapShader,环形渐变RadialGradient,和/或,扫描渐变SweepGradient;所述渲染器行为还包括:平铺REPEAT,和/或,镜像平铺MIRROR。
为了解决上述问题,本申请还公开了一种用户界面UI控件的绘制装置,包括:
继承模块,用于生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
覆写模块,用于采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
优选的,所述预置的渲染信息包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制包括完成所述子类控件ShaderTextView阴影效果的绘制。
优选的,所述覆写模块包括:
渲染方式实例化子模块,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
绘制工具信息实例化子模块,用于从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
绘制子模块,用于采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
优选的,所述渲染方式包括线性渐变LinearGradient,所述渲染器行为包括夹持CLAMP,所述渲染方式实例化子模块包括:
渐变类实例化单元,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
优选的,所述绘制工具信息包括所述子类控件ShaderTextView类中的画笔类Paint,所述绘制工具信息实例化子模块包括:
画笔类实例化单元,用于从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例通过继承自父类控件TextView生成子类控件ShaderTextView,所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。由于是通过代码逻辑绘制控件,并不需要加载阴影效果的图片,减少了对图片资源的依赖,减少不必要的内存消耗,提高系统运行的效率,绘制的效果也更加自然。而且,由于通过继承生成子类控件,子类控件与父类控件具有相同的位置,并不需要重新计算控件之间的位置关系,避免了出现错位的情况。
附图说明
图1是本申请的一种用户界面UI控件的绘制方法实施例1的步骤流程图;
图2是本申请的一种用户界面UI控件的绘制方法实施例2的步骤流程图;
图3是本申请的一种用户界面UI控件的绘制装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例的核心构思之一在于,通过生成继承自父类控件TextView的子类控件ShaderTextView,使所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法,采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。通过代码逻辑绘制控件,并不需要加载阴影效果的图片,减少了对图片资源的依赖,减少不必要的内存消耗,提高系统运行的效率,绘制的效果也更加自然。而且,由于通过继承生成子类控件,子类控件与父类控件具有相同的位置,并不需要重新计算控件之间的位置关系,避免了出现错位的情况。
参照图1,示出了本申请的一种用户界面UI控件的绘制方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,生成继承自父类控件TextView的子类控件ShaderTextView;
在本申请实施例中,所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
需要说明的是,继承可以是指特殊类(或子类、派生类)的对象拥有其一般类(或称父类、基类)的全部属性与服务,称作特殊类(子类)对一般类(父类)的继承。所述继承可以通过扩展原有的类,声明新类来实现的。扩展声明的新类称为子类,原有的类称为超类(父类)。继承机制规定,子类可以拥有超类(父类)的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义超类(父类)的方法。
在实际应用中,所述显示OnDraw方法可以是指用于确定控件的显示效果的函数。
在具体实现中,所述用户界面UI控件可以包括Android系统的用户界面UI控件,也可以包括其他基于面向对象语言开发的系统的用户界面UI控件,例如:QT,MicrosoftVisualC++等。
步骤102,采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
在具体实现中,所述渲染信息可以是指针对显示OnDraw方法编写的,用于实现特定绘制效果的代码。所述预置的渲染信息可以是由运管人员预先设置的代码,也可以是按照预置规则对特定的信息生成的代码。
需要说明的是,覆写(override,也称“重写”、“覆盖”)可以是指在继承后的子类中,通过重新编写代码,对父类的函数进行覆盖修改的过程。当然,覆写也可以是在继承的子接口中,对父接口的函数的覆盖改写。例如:子类继承了父类,父类中具有函数voidA(inta),由于父类的A写得不好或不适合的子类,需要重写一遍A的代码,那么就可以通过覆写,如overridevoidA(inta)这样,将新写A的代码覆盖父类的原函数中A的代码。
在具体实现中,所述子类控件ShaderTextView继承了父类控件TextView,父类控件TextView中具有显示OnDraw方法,因此,子类控件ShaderTextView继承了父类控件TextView中具有显示OnDraw方法。由于父类控件TextView不具有阴影的效果,可以通过在子类控件ShaderTextView中覆写显示OnDraw方法,从而覆盖父类控件TextView的显示OnDraw方法的代码。
本申请实施例通过生成继承自父类控件TextView的子类控件ShaderTextView,采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。由于是通过代码逻辑绘制控件,并不需要加载阴影效果的图片,减少了对图片资源的依赖,减少不必要的内存消耗,提高系统运行的效率,绘制的效果也更加自然。而且,由于通过继承生成子类控件,子类控件与父类控件具有相同的位置,并不需要重新计算控件之间的位置关系,避免了出现错位的情况。
参照图2,示出了本申请的一种用户界面UI控件的绘制方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
步骤202,采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
在具体应用中,所述预置的渲染信息可以包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制可以包括完成所述子类控件ShaderTextView阴影效果的绘制。
在本申请实施例中,所述步骤202可以包括如下子步骤:
子步骤202a,在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
需要说明的是,所述实例化可以是指在面向对象的编程中,把用类创建对象的过程。所述渲染方式可以是指控制所述子类控件ShaderTextView的渲染器着色方式的函数。所述渲染器行为可以是指用于确定渲染器着色方式的标识。
在具体实现中,所述渲染方式可以包括线性渐变LinearGradient,所述渲染器行为可以包括夹持CLAMP,所述子步骤202a可以包括如下子步骤:
子步骤a1,在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
在具体实现中,所述子步骤a1可以为:
LinearGradientshader=newLinearGradient(0,0,0,height,0xffffffff,0x00ffffff,TileMode.CLAMP);//实例化线性渐变LinearGradient,前四个参数设置渐变的范围X轴Y轴,后面的参数是颜色渐变的范围,为颜色值,类型为ARPG,最后的参数为渲染器行为
在实际应用中,所述渲染方式还可以包括如下渲染方式:图像渲染BitmapShader,环形渐变RadialGradient,和/或,扫描渐变SweepGradient;所述渲染器行为还可以包括如下渲染器行为:平铺REPEAT,和/或,镜像平铺MIRROR。
子步骤202b,从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
在实际应用中,所述绘制工具信息可以是指所述子类控件ShaderTextView中,用于进行绘制的函数。
在具体实现中,所述绘制工具信息可以包括所述子类控件ShaderTextView类中的画笔类Paint,所述子步骤202b可以包括如下子步骤:
子步骤b1,从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
在具体实现中,所述子步骤b1可以为:
mPaint=newPaint();//获取绘制UI的画笔
LinearGradientshader=newLinearGradient(0,0,0,height,0xffffffff,0x00ffffff,TileMode.CLAMP);//实例化线性渐变LinearGradient,前四个参数设置渐变的范围X轴Y轴,后面的参数是颜色渐变的范围,为颜色值,类型为ARPG,最后的参数为渲染器行为
mPaint.setShader(shader);//设置渲染器
子步骤202c,采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
在具体实现中,所述子步骤202c可以包括如下子步骤:
子步骤c1,从所述子类控件ShaderTextView中获取画布类Canvas,将图像合成方式,以及,画布范围配置到所述画布类Canvas中;
在具体实现中,所述子步骤c1可以为:
mPaint.setXfermode(newPorterDuffXfermode(Mode.DST_IN));//图像合成方式
canvas.drawRect(0,0,width,height,mPaint);//设置画布的范围
子步骤c2,将所述实例化的画笔类Paint与所述画布类Canvas进行关联,完成所述子类控件ShaderTextView的绘制。
本申请实施例通过在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为,从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中,采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。从而实现了对子类控件ShaderTextView的显示OnDraw方法进行覆写。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请一种用户界面UI控件的绘制装置实施例的结构框图,具体可以包括如下模块:
继承模块301,用于生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
覆写模块302,用于采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
在具体实现中,所述预置的渲染信息可以包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制可以包括完成所述子类控件ShaderTextView阴影效果的绘制。
在本申请的一种优选实施例中,所述覆写模块302可以包括如下子模块:
渲染方式实例化子模块302a,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
在具体实现中,所述渲染方式可以包括线性渐变LinearGradient,所述渲染器行为可以包括夹持CLAMP,所述渲染方式实例化子模块302a可以包括如下单元:
渐变类实例化单元,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
需要说明的是,所述渲染方式还可以包括如下渲染方式:图像渲染BitmapShader,环形渐变RadialGradient,和/或,扫描渐变SweepGradient;所述渲染器行为还可以包括如下渲染器行为:平铺REPEAT,和/或,镜像平铺MIRROR。
绘制工具信息实例化子模块302b,用于从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
在具体应用中,所述绘制工具信息可以包括所述子类控件ShaderTextView类中的画笔类Paint,所述绘制工具信息实例化子模块302b可以包括如下单元:
画笔类实例化单元,用于从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
绘制子模块302c,用于采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
在具体应用中,所述绘制子模块302c可以包括如下单元:
画布类获取单元,用于从所述子类控件ShaderTextView中获取画布类Canvas,将图像合成方式,以及,画布范围配置到所述画布类Canvas中;
画布类关联单元,用于将所述实例化的画笔类Paint与所述画布类Canvas进行关联,完成所述子类控件ShaderTextView的绘制。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种用户界面UI控件的绘制方法和一种用户界面UI控件的绘制装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种用户界面UI控件的绘制方法,其特征在于,包括:
生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
2.根据权利要求1所述的方法,其特征在于,所述预置的渲染信息包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制包括完成所述子类控件ShaderTextView阴影效果的绘制。
3.根据权利要求1或2所述的方法,其特征在于,所述采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制的步骤包括:
在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
4.根据权利要求3所述的方法,其特征在于,所述渲染方式包括线性渐变LinearGradient,所述渲染器行为包括夹持CLAMP,所述在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为的子步骤包括:
在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
5.根据权利要求3所述的方法,其特征在于,所述绘制工具信息包括所述子类控件ShaderTextView类中的画笔类Paint,所述从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中的子步骤包括:
从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
6.根据权利要求3所述的方法,其特征在于,所述采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制的子步骤包括:
从所述子类控件ShaderTextView中获取画布类Canvas,将图像合成方式,以及,画布范围配置到所述画布类Canvas中;
将所述实例化的画笔类Paint与所述画布类Canvas进行关联,完成所述子类控件ShaderTextView的绘制。
7.根据权利要求3所述的方法,其特征在于,所述渲染方式还包括:图像渲染BitmapShader,环形渐变RadialGradient,和/或,扫描渐变SweepGradient;所述渲染器行为还包括:平铺REPEAT,和/或,镜像平铺MIRROR。
8.一种用户界面UI控件的绘制装置,其特征在于,包括:
继承模块,用于生成继承自父类控件TextView的子类控件ShaderTextView;所述子类控件ShaderTextView具有与所述父类控件TextView相同的显示OnDraw方法;
覆写模块,用于采用预置的渲染信息覆写所述子类控件ShaderTextView的显示OnDraw方法,完成所述子类控件ShaderTextView的绘制。
9.根据权利要求8所述的装置,其特征在于,所述预置的渲染信息包括线性渲染信息,所述完成所述子类控件ShaderTextView的绘制包括完成所述子类控件ShaderTextView阴影效果的绘制。
10.根据权利要求8或9所述的装置,其特征在于,所述覆写模块包括:
渲染方式实例化子模块,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化预置的渲染方式,设定渲染区域及渲染器行为;
绘制工具信息实例化子模块,用于从所述子类控件ShaderTextView中获取绘制工具信息,将实例化的渲染方式,以及所述渲染区域及渲染器行为配置到所述绘制工具信息中;
绘制子模块,用于采用所述绘制工具信息完成所述子类控件ShaderTextView的绘制。
11.根据权利要求11所述的装置,其特征在于,所述渲染方式包括线性渐变LinearGradient,所述渲染器行为包括夹持CLAMP,所述渲染方式实例化子模块包括:
渐变类实例化单元,用于在所述子类控件ShaderTextView的显示OnDraw方法中,实例化线性渐变类LinearGradient,设定渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP。
12.根据权利要求11所述的装置,其特征在于,所述绘制工具信息包括所述子类控件ShaderTextView类中的画笔类Paint,所述绘制工具信息实例化子模块包括:
画笔类实例化单元,用于从所述子类控件ShaderTextView中获取画笔类Paint,将所述实例化的线性渐变类LinearGradient,渐变的区域范围和渐变的颜色范围,以及,渲染器行为CLAMP配置到所述画笔类Paint的阴影shader参数中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848584.8A CN105808218A (zh) | 2014-12-30 | 2014-12-30 | 一种针对用户界面ui控件效果的绘制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848584.8A CN105808218A (zh) | 2014-12-30 | 2014-12-30 | 一种针对用户界面ui控件效果的绘制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105808218A true CN105808218A (zh) | 2016-07-27 |
Family
ID=56421426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410848584.8A Pending CN105808218A (zh) | 2014-12-30 | 2014-12-30 | 一种针对用户界面ui控件效果的绘制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808218A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990954A (zh) * | 2017-03-09 | 2017-07-28 | 武汉斗鱼网络科技有限公司 | 一种实现安卓系统应用程序中按钮效果的方法和系统 |
CN107015740A (zh) * | 2017-03-16 | 2017-08-04 | 北京猎豹移动科技有限公司 | 移动终端屏幕的控制方法、装置以及移动终端 |
CN108762860A (zh) * | 2018-04-16 | 2018-11-06 | 北京酷我科技有限公司 | 一种阴影效果的实现方法 |
CN108984173A (zh) * | 2018-06-26 | 2018-12-11 | 北京酷我科技有限公司 | 一种带下载进度和状态的下载按钮的实现方法 |
CN109445789A (zh) * | 2018-10-24 | 2019-03-08 | 上海金大师网络科技有限公司 | 带独立渲染层的复合控件生成方法、系统及介质 |
CN110389761A (zh) * | 2018-04-20 | 2019-10-29 | 广州优视网络科技有限公司 | 阴影绘制方法、装置、终端以及计算机可读存储介质 |
CN110764766A (zh) * | 2019-10-15 | 2020-02-07 | 成都四方伟业软件股份有限公司 | 一种光圈效果实现方法及装置 |
CN111857671A (zh) * | 2020-07-30 | 2020-10-30 | 北京庚图科技有限公司 | 用于三维图形绘制的装置和方法 |
WO2022111593A1 (zh) * | 2020-11-28 | 2022-06-02 | 华为技术有限公司 | 一种用户图形界面显示方法及其装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136102A (zh) * | 2013-02-07 | 2013-06-05 | 百度在线网络技术(北京)有限公司 | 一种Android平台的流畅度测试方法和装置 |
CN103473081A (zh) * | 2012-06-08 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 终端进行系统升级后生效的方法及该终端 |
-
2014
- 2014-12-30 CN CN201410848584.8A patent/CN105808218A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473081A (zh) * | 2012-06-08 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 终端进行系统升级后生效的方法及该终端 |
CN103136102A (zh) * | 2013-02-07 | 2013-06-05 | 百度在线网络技术(北京)有限公司 | 一种Android平台的流畅度测试方法和装置 |
Non-Patent Citations (1)
Title |
---|
佚名: "Android中TextView显示彩虹字", 《HTTP://BLOG.163.COM/GOBBY_1110/BLOG/STATIC/292817152011820104133351/》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990954A (zh) * | 2017-03-09 | 2017-07-28 | 武汉斗鱼网络科技有限公司 | 一种实现安卓系统应用程序中按钮效果的方法和系统 |
CN107015740A (zh) * | 2017-03-16 | 2017-08-04 | 北京猎豹移动科技有限公司 | 移动终端屏幕的控制方法、装置以及移动终端 |
CN108762860A (zh) * | 2018-04-16 | 2018-11-06 | 北京酷我科技有限公司 | 一种阴影效果的实现方法 |
CN108762860B (zh) * | 2018-04-16 | 2021-08-03 | 北京酷我科技有限公司 | 一种阴影效果的实现方法 |
CN110389761A (zh) * | 2018-04-20 | 2019-10-29 | 广州优视网络科技有限公司 | 阴影绘制方法、装置、终端以及计算机可读存储介质 |
CN108984173A (zh) * | 2018-06-26 | 2018-12-11 | 北京酷我科技有限公司 | 一种带下载进度和状态的下载按钮的实现方法 |
CN109445789A (zh) * | 2018-10-24 | 2019-03-08 | 上海金大师网络科技有限公司 | 带独立渲染层的复合控件生成方法、系统及介质 |
CN109445789B (zh) * | 2018-10-24 | 2021-11-09 | 上海金大师网络科技有限公司 | 带独立渲染层的复合控件生成方法、系统及介质 |
CN110764766A (zh) * | 2019-10-15 | 2020-02-07 | 成都四方伟业软件股份有限公司 | 一种光圈效果实现方法及装置 |
CN111857671A (zh) * | 2020-07-30 | 2020-10-30 | 北京庚图科技有限公司 | 用于三维图形绘制的装置和方法 |
WO2022111593A1 (zh) * | 2020-11-28 | 2022-06-02 | 华为技术有限公司 | 一种用户图形界面显示方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808218A (zh) | 一种针对用户界面ui控件效果的绘制方法和装置 | |
US11989802B2 (en) | System for supporting flexible color assignment in complex documents | |
US9818201B2 (en) | Efficient lens re-distortion | |
AU2008305452B2 (en) | Animating objects using a declarative animation scheme | |
CN107656759B (zh) | 一种用于用户界面的渲染方法和装置 | |
Smith et al. | Android recipes: a problem-solution approach | |
CN105204859A (zh) | 动画管理方法及其系统 | |
CN110806847A (zh) | 一种分布式多屏幕显示方法、装置、设备及系统 | |
CN107179920A (zh) | 网络引擎启动方法及装置 | |
CN106648567B (zh) | 数据获取方法及装置 | |
CN107621951B (zh) | 一种视图层级优化的方法及装置 | |
US11354028B2 (en) | Multi-depth image generation and viewing | |
CN112732252A (zh) | 一种动态生成ui的方法、装置和电子设备 | |
CN109213534A (zh) | 一种扩展直播软件功能的方法及装置 | |
CN110659372A (zh) | 图片录入与访问方法、装置及设备 | |
CN107369192B (zh) | 一种连接关系处理方法及装置 | |
CN107402749A (zh) | 实现图片加载库的方法及装置 | |
CN104537039B (zh) | 一种图像显示方法及其系统 | |
CN116757169B (zh) | 一种高速公路养护计量支付报表的生成方法、设备及介质 | |
CN116823999B (zh) | 一种基于图片识别的交互方法、设备及介质 | |
CN116595284B (zh) | 网页系统运行方法、装置、设备、存储介质和程序 | |
CN112712574A (zh) | 一种图表的生成方法、装置和电子设备 | |
WO2024050999A1 (zh) | 一种Qml主题皮肤更换方法、装置、电子设备及存储介质 | |
CN111290995B (zh) | 资源管理方法和装置 | |
CN117076396A (zh) | 特效生成方法、装置、设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160727 |