CN108563427A - 一种音效类型选择的方法 - Google Patents

一种音效类型选择的方法 Download PDF

Info

Publication number
CN108563427A
CN108563427A CN201810233083.7A CN201810233083A CN108563427A CN 108563427 A CN108563427 A CN 108563427A CN 201810233083 A CN201810233083 A CN 201810233083A CN 108563427 A CN108563427 A CN 108563427A
Authority
CN
China
Prior art keywords
view
sub
control
audio type
horizontalchooseview
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
Application number
CN201810233083.7A
Other languages
English (en)
Inventor
孙征
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuwo Technology Co Ltd
Original Assignee
Beijing Kuwo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kuwo Technology Co Ltd filed Critical Beijing Kuwo Technology Co Ltd
Priority to CN201810233083.7A priority Critical patent/CN108563427A/zh
Publication of CN108563427A publication Critical patent/CN108563427A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及一种音效类型选择的方法,包括如下步骤:步骤1,设定手势识别器detector,在滚动触发函数onScroll里调用View中的滑动回调函数scrollBy;步骤2,在测量回调函数onMeasure中,获取控件HorizontalChooseView的宽和高,以及测量模式;步骤3,在容器中定位回调函数onLayout中,遍历控件HorizontalChooseView的所有的子View,设置所有子View的位置;步骤4,重写ViewGroup控件的触摸事件回调函数onTouchEvent,响应用户的点击和滑动操作。本发明,能够集中管理音效类型,支持用户自定义,便于用户快速选择所需的音效类型,算法统一,系统开销小,易于后期维护及扩展。

Description

一种音效类型选择的方法
技术领域
本发明涉及音效类型管理及选择技术领域,具体说是一种音效类型选择的方法。
背景技术
随着安卓手机硬件性能的提升,以及软件开发的日趋完善,在通过手机欣赏音视频时,为了获得更佳的体验效果,用户可以通过安装音效App实现多种音效驱动的自由切换,以满足不同情况下的欣赏需求。
随着音效的增多,如何保证用户能便捷的管理、选择音效类型需要给予考虑。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种音效类型选择的方法,能够集中管理音效类型,支持用户自定义,便于用户快速选择所需的音效类型,算法统一,系统开销小,易于后期维护及扩展。
为达到以上目的,本发明采取的技术方案是:
一种音效类型选择的方法,其特征在于,包括如下步骤:
步骤1,设定手势识别器detector,在滚动触发函数onScroll里调用View中的滑动回调函数scrollBy;
步骤2,在测量回调函数onMeasure中,获取控件HorizontalChooseView的宽和高,以及测量模式,
所述控件HorizontalChooseView继承布局容器类ViewGroup,ViewGroup继承于View,
控件HorizontalChooseView通过调用其成员函数addView()将View当作childView放到ViewGroup中,
ViewGroup相当于一个放置View的容器,给childView计算出建议的宽和高和测量模式;
步骤3,在容器中定位回调函数onLayout中,遍历控件HorizontalChooseView的所有的子View,设置所有子View的位置;
步骤4,重写ViewGroup控件的触摸事件回调函数onTouchEvent,响应用户的点击和滑动操作;
当用户点击或者滑动的时候,系统会回调onTouchEvent函数,所以在这个回调中使用自定义的手势,会在步骤1的scrollBy回调中进行自己处理滑动事件。
在上述技术方案的基础上,步骤1中,所述手势识别器detector,为手势识别类GestureDetector对象,GestureDetector由Android sdk提供。
在上述技术方案的基础上,步骤1中,滑动回调函数scrollBy设定默认参数x,y,代表每次滑动的x和y轴的像素值。
在上述技术方案的基础上,步骤2中,默认屏幕展示5种音效,通过控件HorizontalChooseView的宽度sizeWidth计算出每种音效view的宽度childWidth,
childWidth = sizeWidth / 5。
在上述技术方案的基础上,步骤2中,所述测量模式分为以下三种:
精确值模式EXACTLY,指控件的layout_width属性或layout_height属性为具体数值;
最大值模式AT_MOST,指控件的layout_width属性或layout_height属性为wrap_content时,控件大小一般随着控件的子控件或内容的变化而变化,此时控件的尺寸只要不超过父控件允许的最大尺寸即可;
无指定模式UNSPECIFIED,这个属性不会指定其大小测量模式,View想多大就多大,这个属性通常会在绘制自定义View时才会使用。
在上述技术方案的基础上,步骤3中,通过ViewGroup提供的获取子view的api函数getChildAt,来获取子view,
用序号i表示获取第几个子view,
用List类型的列表mAllChildView保存所有的子view,例如:mAllChildView.add(child)就是将获取到的子view添加到列表mAllChildView中,
用view提供的布局api函数child.layout,结合左、上、右、下四个方位坐标作为输入参数,确定将子view放置到父view中的位置,
设定横坐标的位移变量firstChildX,用于在计算完一个子view的位置后,需要将该变量加上子view的宽度,以便在计算下一个view的x坐标的时候使用正确的值。
在上述技术方案的基础上,步骤4中,通过手势识别器detector,调用回调onTouchEvent函数,将控件HorizontalChooseView的事件event变量传递给了手势变量,以便在手势操作中进行处理。
在上述技术方案的基础上,步骤4中,横向滑动和点击选择后,选中的音效类型,会自动将音效移动到屏幕正中间。
本发明所述的音效类型选择的方法,能够集中管理音效类型,支持用户自定义,便于用户快速选择所需的音效类型,算法统一,系统开销小,易于后期维护及扩展。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的音效类型选择的方法,包括如下步骤:
步骤1,设定手势识别器detector,在滚动触发函数onScroll里调用View中的滑动回调函数scrollBy;
步骤2,在测量回调函数onMeasure中,获取控件HorizontalChooseView的宽和高,以及测量模式,
所述控件HorizontalChooseView继承布局容器类ViewGroup,ViewGroup继承于View,
控件HorizontalChooseView通过调用其成员函数addView()将View当作childView放到ViewGroup中,
ViewGroup相当于一个放置View的容器,给childView计算出建议的宽和高和测量模式;
步骤3,在容器中定位回调函数onLayout中,遍历控件HorizontalChooseView的所有的子View,设置所有子View的位置;
步骤4,重写ViewGroup控件的触摸事件回调函数onTouchEvent,响应用户的点击和滑动操作;
当用户点击或者滑动的时候,系统会回调onTouchEvent函数,所以在这个回调中使用自定义的手势,会在步骤1的scrollBy回调中进行自己处理滑动事件。
在上述技术方案的基础上,步骤1中,所述手势识别器detector,为手势识别类GestureDetector对象,GestureDetector由Android sdk提供。detector就是自定义的手势变量。
在上述技术方案的基础上,步骤1中,滑动回调函数scrollBy设定默认参数x,y,代表每次滑动的x和y轴的像素值。
例如:scrollBy((int) distanceX / 5, 0),其中:distanceX / 5,5代表滑动的粘性值,用户滑动可以保持一定的粘性,防止滑动过快,而出现选择不准的情况,体验更好,distanceX是滑动的像素数,滑动的粘性值可以自行修改,这里根据经验值取值5。
在上述技术方案的基础上,步骤2中,默认屏幕展示5种音效,通过控件HorizontalChooseView的宽度sizeWidth计算出每种音效view的宽度childWidth,
childWidth = sizeWidth / 5。
所述音效包括关闭、自定义、流行、摇滚、舞曲、古典、爵士、低音和高音中的任意5种。
各音效分别对应一组参数,用于辨识该音效如何被调用。所述参数包括:
音效名称,
插件或驱动文件存储路径,
插件或驱动文件名称,
插件或驱动文件版本,
同时播放数据流的最大个数,
数据流类型,
声音质量,
默认设定参数。
在上述技术方案的基础上,步骤2中,所述测量模式分为以下三种:
精确值模式EXACTLY,指控件的layout_width属性或layout_height属性为具体数值,例如:
android:layout_width="100dp",或者指定为match_parent时,系统使用的是EXACTLY模式;
最大值模式AT_MOST,指控件的layout_width属性或layout_height属性为wrap_content时,控件大小一般随着控件的子控件或内容的变化而变化,此时控件的尺寸只要不超过父控件允许的最大尺寸即可;
无指定模式UNSPECIFIED,这个属性不会指定其大小测量模式,View想多大就多大,这个属性通常会在绘制自定义View时才会使用。
在上述技术方案的基础上,步骤3中,通过ViewGroup提供的获取子view的api函数getChildAt,来获取子view,
用序号i表示获取第几个子view,
用List类型的列表mAllChildView保存所有的子view,例如:mAllChildView.add(child)就是将获取到的子view添加到列表mAllChildView中,
用view提供的布局api函数child.layout,结合左、上、右、下四个方位坐标作为输入参数,确定将子view放置到父view中的位置,
设定横坐标的位移变量firstChildX,用于在计算完一个子view的位置后,需要将该变量加上子view的宽度,以便在计算下一个view的x坐标的时候使用正确的值。
例如:可采用如下具体代码:
for (int i = 0; i < count; i++) {
TextView child = (TextView) getChildAt(i);
mAllChildView.add(child);
child.layout(firstChildX, 0, firstChildX + childWidth,
childHeight);
firstChildX += childWidth;
}。
在上述技术方案的基础上,步骤4中,通过手势识别器detector,调用回调onTouchEvent函数,将控件HorizontalChooseView的事件event变量传递给了手势变量,以便在手势操作中进行处理。例如:
detector.onTouchEvent(event);
在onTouchEvent回调的手势抬起状态时,确定用户选择的是哪种音效。
在上述技术方案的基础上,步骤4中,横向滑动和点击选择后,选中的音效类型,会自动将音效移动到屏幕正中间。例如:
case MotionEvent.ACTION_DOWN: // 按下
firstDownX = (int) event.getX();
break;
case MotionEvent.ACTION_UP: // 抬起
int nextId = 0; // 记录下一个View的id
if (event.getX() - firstDownX > childWidth / 2) {
// 手指离开点的X轴坐标-firstDownX > 子view宽度的一半,左移
nextId = (currId - 1) <= 0 问号 0 : currId - 1;
} else if (firstDownX - event.getX() > childWidth / 2) {
// 手指离开点的X轴坐标 - firstDownX < 子view宽度的一半,右移
nextId = currId + 1;
} else {
nextId = currId;
}
moveToDest(nextId);
其中, MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP是用户点击和抬起手指时的情况,是一个int型的变量,值是0和1;firstDownX是用户点击的时候记录点击的x坐标变量;nextId是下一个view的id的临时变量;
event.getX() - firstDownX > childWidth / 2表示抬起时候的x坐标减去按下时候的x坐标差值,比单个子view的宽度的一半要大,就表示用户向右边滑动了,是一个有效的操作,对应的音效view就向右边滑动,currId 是当前已经选择的音效的序号,默认是0,对应的音效类型是关闭,所以做了一个有效的向右滑动的操作,序号就要减一,当序号小于0的时候,就强制让nextId等于0,也就是对应关闭;
firstDownX - event.getX() > childWidth / 2表示按下时候的x坐标减去抬起时候的x坐标的差值,比单个子view的宽度的一半要大,就表示用户想做滑动了,是一个有效的操作,对应的音效view就向左边滑动,currId 是当前已经选择的音效的序号,默认是0,对应的音效类型是关闭,所以做了一个有效的向左滑动的操作,序号就要加1;
除此以外的情况,就表示用户只进行了简单的滑动操作,没有选择音效,音效的id没有变化;
moveToDest(nextId, true, true)表示确定了选择的音效id之后,自动的将选择的音效移动到正确的位置,也就是屏幕的正中间。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种音效类型选择的方法,其特征在于,包括如下步骤:
步骤1,设定手势识别器detector,在滚动触发函数onScroll里调用View中的滑动回调函数scrollBy;
步骤2,在测量回调函数onMeasure中,获取控件HorizontalChooseView的宽和高,以及测量模式,
所述控件HorizontalChooseView继承布局容器类ViewGroup,ViewGroup继承于View,
控件HorizontalChooseView通过调用其成员函数addView()将View当作childView放到ViewGroup中,
ViewGroup相当于一个放置View的容器,给childView计算出建议的宽和高和测量模式;
步骤3,在容器中定位回调函数onLayout中,遍历控件HorizontalChooseView的所有的子View,设置所有子View的位置;
步骤4,重写ViewGroup控件的触摸事件回调函数onTouchEvent,响应用户的点击和滑动操作;
当用户点击或者滑动的时候,系统会回调onTouchEvent函数,所以在这个回调中使用自定义的手势,会在步骤1的scrollBy回调中进行自己处理滑动事件。
2.如权利要求1所述的音效类型选择的方法,其特征在于:步骤1中,所述手势识别器detector,为手势识别类GestureDetector对象,GestureDetector由Android sdk提供。
3.如权利要求1所述的音效类型选择的方法,其特征在于:步骤1中,滑动回调函数scrollBy设定默认参数x,y,代表每次滑动的x和y轴的像素值。
4.如权利要求1所述的音效类型选择的方法,其特征在于:步骤2中,默认屏幕展示5种音效,通过控件HorizontalChooseView的宽度sizeWidth计算出每种音效view的宽度childWidth,
childWidth = sizeWidth / 5。
5.如权利要求1所述的音效类型选择的方法,其特征在于:步骤2中,所述测量模式分为以下三种:
精确值模式EXACTLY,指控件的layout_width属性或layout_height属性为具体数值;
最大值模式AT_MOST,指控件的layout_width属性或layout_height属性为wrap_content时,控件大小一般随着控件的子控件或内容的变化而变化,此时控件的尺寸只要不超过父控件允许的最大尺寸即可;
无指定模式UNSPECIFIED,这个属性不会指定其大小测量模式,View想多大就多大,这个属性通常会在绘制自定义View时才会使用。
6.如权利要求1所述的音效类型选择的方法,其特征在于:步骤3中,通过ViewGroup提供的获取子view的api函数getChildAt,来获取子view,
用序号i表示获取第几个子view,
用List类型的列表mAllChildView保存所有的子view,例如:mAllChildView.add(child)就是将获取到的子view添加到列表mAllChildView中,
用view提供的布局api函数child.layout,结合左、上、右、下四个方位坐标作为输入参数,确定将子view放置到父view中的位置,
设定横坐标的位移变量firstChildX,用于在计算完一个子view的位置后,需要将该变量加上子view的宽度,以便在计算下一个view的x坐标的时候使用正确的值。
7.如权利要求1所述的音效类型选择的方法,其特征在于:步骤4中,通过手势识别器detector,调用回调onTouchEvent函数,将控件HorizontalChooseView的事件event变量传递给了手势变量,以便在手势操作中进行处理。
8.如权利要求1所述的音效类型选择的方法,其特征在于:步骤4中,横向滑动和点击选择后,选中的音效类型,会自动将音效移动到屏幕正中间。
CN201810233083.7A 2018-03-21 2018-03-21 一种音效类型选择的方法 Pending CN108563427A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810233083.7A CN108563427A (zh) 2018-03-21 2018-03-21 一种音效类型选择的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810233083.7A CN108563427A (zh) 2018-03-21 2018-03-21 一种音效类型选择的方法

Publications (1)

Publication Number Publication Date
CN108563427A true CN108563427A (zh) 2018-09-21

Family

ID=63531933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810233083.7A Pending CN108563427A (zh) 2018-03-21 2018-03-21 一种音效类型选择的方法

Country Status (1)

Country Link
CN (1) CN108563427A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662598A (zh) * 2012-04-25 2012-09-12 深圳市中兴移动通信有限公司 基于手势滑动的会话查看方法及装置、触屏智能终端
CN105204757A (zh) * 2014-06-30 2015-12-30 阿里巴巴集团控股有限公司 一种界面显示方法和装置
CN105242927A (zh) * 2015-10-09 2016-01-13 沈文策 一种基于复杂环境下实现开关可滑动可点击的方法
US20170090598A1 (en) * 2015-09-25 2017-03-30 Smart Technologies Ulc System and Method of Pointer Detection for Interactive Input
CN107220047A (zh) * 2017-05-19 2017-09-29 北京酷我科技有限公司 一种音频频谱的动图显示进度条控件实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662598A (zh) * 2012-04-25 2012-09-12 深圳市中兴移动通信有限公司 基于手势滑动的会话查看方法及装置、触屏智能终端
CN105204757A (zh) * 2014-06-30 2015-12-30 阿里巴巴集团控股有限公司 一种界面显示方法和装置
US20170090598A1 (en) * 2015-09-25 2017-03-30 Smart Technologies Ulc System and Method of Pointer Detection for Interactive Input
CN105242927A (zh) * 2015-10-09 2016-01-13 沈文策 一种基于复杂环境下实现开关可滑动可点击的方法
CN107220047A (zh) * 2017-05-19 2017-09-29 北京酷我科技有限公司 一种音频频谱的动图显示进度条控件实现方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BACKWASH2038: "《手势识别器大全》", 《HTTPS://BLOG.CSDN.NET/WEIXIN_38501485/ARTICLE/DETAILS/74530260》 *
BYHIEG: "《简单的ViewPager了解Scroller 类》", 《HTTPS://WWW.CNBLOGS.COM/QIFENGSHI/P/5808794.HTML》 *
BYHIEG: "《简单的例子解自定义ViewGroup(一)》", 《HTTPS://WWW.CNBLOGS.COM/QIFENGSHI/P/5774852.HTML》 *
JSONNAN: "《Android自定义控件——View的测量模式》", 《HTTPS://BLOG.CSDN.NET/JSONNAN/ARTICLE/DETAILS/73826185》 *

Similar Documents

Publication Publication Date Title
US11947587B2 (en) Methods, systems, and media for generating sentimental information associated with media content
RU2618770C2 (ru) Многоуровневый шкальный индикатор, способ и устройство для управления позицией шкалы
CN103324440B (zh) 一种利用多点触控选择文字内容的方法
US9927957B1 (en) Rotary navigation of synchronized content
CN104156166B (zh) 操作控件布局调整方法及装置
CN104685470B (zh) 用于从模板生成用户界面的设备和方法
US9612675B2 (en) Emulating pressure sensitivity on multi-touch devices
CN104102417B (zh) 电子装置及其显示播放列表的方法
CN111050203B (zh) 一种视频处理方法、装置、视频处理设备及存储介质
CN105611458B (zh) 一种移动终端的定向录音控制方法及装置
CN103218387B (zh) 用于在便携式终端中综合管理内容的方法和设备
US9281793B2 (en) Systems, methods, and apparatus for generating an audio signal based on color values of an image
CN107124508A (zh) 悬浮控件的位置调整方法、装置及终端、可读存储介质
US20130124533A1 (en) Method and apparatus for updating song playlists based on received user ratings
CN105955617A (zh) 用于选择文本的手势
CN103782342A (zh) 电子文本的声道
CN102610255B (zh) 用于确定媒体信息的播放时间点的方法、装置和设备
CN110531920A (zh) 侧边工具栏的显示方法、装置、终端及存储介质
KR20180098641A (ko) 멀티미디어 파일 관리 방법, 전자 장치, 및 그래픽 사용자 인터페이스
JP2014164767A (ja) 電子装置におけるマウスカーソルを提供する装置及び方法並びに電子装置
CN102193714A (zh) 一种移动终端资料分组管理的人机交互方式
CN102541352A (zh) 一种使手机适应用户触控习惯的方法
CN104850339B (zh) 一种信息处理方法及电子设备
CN103686281A (zh) 模拟鼠标控制智能电视的方法、遥控器和移动终端
CN103197880A (zh) 在具有触摸屏的终端中显示键盘的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180921