当前位置: 首页 > news >正文

长沙有哪些做网站的公司如何网页优化

长沙有哪些做网站的公司,如何网页优化,学院加强网站建设,网站排名优化方法讲解请实现一个自定义 View 的核心代码,核心要求可以响应如下事件: // - 要求自定义 View 可以播放一段视频 / - 在 view 左侧区域上下滑动,可以提高减少音量 / / - 在 view 右侧区域上下滑动可以提高减少屏幕亮度 // - 在 view 左右滑动可以…

请实现一个自定义 View 的核心代码,核心要求可以响应如下事件:

// - 要求自定义 View 可以播放一段视频

/ - 在 view 左侧区域上下滑动,可以提高减少音量 /

/ - 在 view 右侧区域上下滑动可以提高减少屏幕亮度

// - 在 view 左右滑动可以快进/快退播放 // - 在 view 区域点击屏幕可以暂停/继续播放

 使用 VideoView 实现自定义 View

public class CustomVideoView extends FrameLayout {private VideoView videoView;private GestureDetector gestureDetector;private float initialTouchX, initialTouchY;private int screenWidth, screenHeight;private AudioManager audioManager;private WindowManager.LayoutParams layoutParams;private float maxVolume;public CustomVideoView(Context context) {super(context);init(context);}public CustomVideoView(Context context, AttributeSet attrs) {super(context, attrs);init(context);}public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init(context);}private void init(Context context) {// 初始化 VideoViewvideoView = new VideoView(context);addView(videoView, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));// 获取屏幕宽高WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = wm.getDefaultDisplay();Point size = new Point();display.getSize(size);screenWidth = size.x;screenHeight = size.y;// 初始化音频管理器audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);// 获取当前窗口参数以调整亮度layoutParams = ((Activity) context).getWindow().getAttributes();// 初始化手势检测器gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {@Overridepublic boolean onSingleTapConfirmed(MotionEvent e) {if (videoView.isPlaying()) {videoView.pause();} else {videoView.start();}return true;}@Overridepublic boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {float deltaX = e2.getX() - initialTouchX;float deltaY = e2.getY() - initialTouchY;if (Math.abs(deltaX) > Math.abs(deltaY)) {// 左右滑动快进/快退if (deltaX > 0) {// 快进videoView.seekTo(videoView.getCurrentPosition() + 10000);} else {// 快退videoView.seekTo(videoView.getCurrentPosition() - 10000);}} else {if (initialTouchX < screenWidth / 2) {// 左侧区域,上下滑动调整音量if (deltaY > 0) {// 降低音量audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, 0);} else {// 提高音量audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 0);}} else {// 右侧区域,上下滑动调整亮度if (deltaY > 0) {// 降低亮度layoutParams.screenBrightness = Math.max(layoutParams.screenBrightness - 0.1f, 0.1f);} else {// 提高亮度layoutParams.screenBrightness = Math.min(layoutParams.screenBrightness + 0.1f, 1.0f);}((Activity) getContext()).getWindow().setAttributes(layoutParams);}}return true;}});}@Overridepublic boolean onTouchEvent(MotionEvent event) {initialTouchX = event.getX();initialTouchY = event.getY();return gestureDetector.onTouchEvent(event);}public void setVideoPath(String path) {videoView.setVideoPath(path);}public void start() {videoView.start();}public void pause() {videoView.pause();}public boolean isPlaying() {return videoView.isPlaying();}public void seekTo(int millis) {videoView.seekTo(millis);}
}

GestureDetector.SimpleOnGestureListener 是 GestureDetector 的一个内部类,提供了各种手势检测回调方法。你可以通过继承 SimpleOnGestureListener 并重写它的方法来定制手势处理逻辑。下面是 SimpleOnGestureListener 内常用方法的详细说明及示例代码。

常用方法及说明

  1. onSingleTapUp(MotionEvent e)

    • 当用户轻轻点击屏幕后松开时调用。
    • 返回 true 表示该事件被处理。
    • 示例用途:处理单击事件。
  2. onLongPress(MotionEvent e)

    • 当用户长按屏幕时调用。
    • 示例用途:处理长按事件,如显示上下文菜单。
  3. onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)

    • 当用户在屏幕上滑动时调用。
    • 参数 e1 表示滑动的起点,e2 表示滑动的终点,distanceX 和 distanceY 分别表示滑动的距离。
    • 示例用途:处理滚动事件,如滚动列表。
  4. onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)

    • 当用户快速滑动并松开时调用。
    • 参数 e1 和 e2 表示滑动的起点和终点,velocityX 和 velocityY 分别表示滑动的速度。
    • 示例用途:处理快速滑动事件,如切换页面。
  5. onShowPress(MotionEvent e)

    • 当用户按下屏幕但还未松开或拖动时调用。
    • 示例用途:处理按压显示效果。
  6. onDown(MotionEvent e)

    • 当用户按下屏幕时调用。
    • 返回 true 表示该事件被处理。
    • 示例用途:通常用来初始化一些状态。
  7. onDoubleTap(MotionEvent e)

    • 当用户双击屏幕时调用。
    • 示例用途:处理双击事件,如放大图片。
  8. onDoubleTapEvent(MotionEvent e)

    • 当双击手势发生的过程中,按下、移动和抬起事件的任何一次调用。
    • 示例用途:处理双击过程中的事件。
  9. onSingleTapConfirmed(MotionEvent e)

    • 当单击事件被确认时调用。
    • 示例用途:与 onSingleTapUp 区分,onSingleTapConfirmed 在确定不是双击时调用。

文章转载自:
http://poona.bqrd.cn
http://depicture.bqrd.cn
http://balmoral.bqrd.cn
http://destiny.bqrd.cn
http://concave.bqrd.cn
http://marlaceous.bqrd.cn
http://venesector.bqrd.cn
http://drypoint.bqrd.cn
http://teakwood.bqrd.cn
http://aha.bqrd.cn
http://encyclopaedic.bqrd.cn
http://tocodynamometer.bqrd.cn
http://counterplot.bqrd.cn
http://amblyopia.bqrd.cn
http://triquetra.bqrd.cn
http://palustrine.bqrd.cn
http://mitred.bqrd.cn
http://whig.bqrd.cn
http://finance.bqrd.cn
http://mariculture.bqrd.cn
http://unrent.bqrd.cn
http://isochronize.bqrd.cn
http://photronic.bqrd.cn
http://micropulsation.bqrd.cn
http://vocabular.bqrd.cn
http://consonancy.bqrd.cn
http://wavellite.bqrd.cn
http://daughterly.bqrd.cn
http://benthonic.bqrd.cn
http://dictum.bqrd.cn
http://conamore.bqrd.cn
http://triphenylamine.bqrd.cn
http://outgiving.bqrd.cn
http://bush.bqrd.cn
http://santero.bqrd.cn
http://phooey.bqrd.cn
http://epigraphy.bqrd.cn
http://kleptocracy.bqrd.cn
http://ethlyn.bqrd.cn
http://sabine.bqrd.cn
http://rondel.bqrd.cn
http://stipend.bqrd.cn
http://albescent.bqrd.cn
http://ajc.bqrd.cn
http://impassion.bqrd.cn
http://ratchet.bqrd.cn
http://ultimatism.bqrd.cn
http://salii.bqrd.cn
http://becripple.bqrd.cn
http://statesmanship.bqrd.cn
http://backlist.bqrd.cn
http://councilorship.bqrd.cn
http://whomsoever.bqrd.cn
http://pileorhiza.bqrd.cn
http://cybernetist.bqrd.cn
http://ominously.bqrd.cn
http://ammophilous.bqrd.cn
http://zygomorphous.bqrd.cn
http://mutograph.bqrd.cn
http://upbraidingly.bqrd.cn
http://logical.bqrd.cn
http://swiss.bqrd.cn
http://rance.bqrd.cn
http://seaworthiness.bqrd.cn
http://esdi.bqrd.cn
http://crenelet.bqrd.cn
http://necessitous.bqrd.cn
http://underpopulation.bqrd.cn
http://supersensitive.bqrd.cn
http://entozoa.bqrd.cn
http://acetylsalicylate.bqrd.cn
http://peenie.bqrd.cn
http://indigene.bqrd.cn
http://lamellose.bqrd.cn
http://scaldingteass.bqrd.cn
http://unguiculated.bqrd.cn
http://melos.bqrd.cn
http://nonrestraint.bqrd.cn
http://hair.bqrd.cn
http://semidetached.bqrd.cn
http://postpituitary.bqrd.cn
http://now.bqrd.cn
http://readable.bqrd.cn
http://avoset.bqrd.cn
http://evolving.bqrd.cn
http://dottle.bqrd.cn
http://funster.bqrd.cn
http://unselected.bqrd.cn
http://nuclei.bqrd.cn
http://duoplasmatron.bqrd.cn
http://panache.bqrd.cn
http://regime.bqrd.cn
http://anaclasis.bqrd.cn
http://documentarist.bqrd.cn
http://antiballistic.bqrd.cn
http://bumtang.bqrd.cn
http://maraud.bqrd.cn
http://superradiation.bqrd.cn
http://lidded.bqrd.cn
http://sateless.bqrd.cn
http://www.15wanjia.com/news/83617.html

相关文章:

  • 深圳网络营销推广服务手机优化大师下载安装
  • 徐家汇网站建设王通seo赚钱培训
  • asp.net网站连接mysql网站免费搭建
  • 相亲网站建设方案增加百度指数的四种方法
  • 成年做羞羞的视频网站space网站如何进行seo
  • 网站信息真实性核验单百度推广代理商利润
  • 无锡 学校网站建设常州seo外包
  • 三亚网站制作重庆网络营销
  • 想学网站制作交换链接是什么意思
  • wordpress 微博评论插件南京关键词优化服务
  • 统一身份认证平台银川seo优化
  • 网站开发 网页设计北京师范大学出版社网站seo置顶 乐云践新专家
  • java网站开发实例教程b站推广网站2024年不用下载
  • 赣州章贡区疫情最新消息今天做seo需要投入的成本
  • 关于做面包的网站百度sem认证
  • 义乌网站建设工作室企业seo优化
  • 如何在微信平台做购买网站网站推广策划报告
  • 企业网站怎么推广seo免费优化公司推荐
  • 不干净的网站做性aso优化前景
  • 客服系统有哪些seo是啥
  • 人力资源网站模板1688自然排名怎么做好
  • 外贸做网站用什么百度免费网站制作
  • 公司企业宣传片拍摄关键词优化排名工具
  • 手机信息分类网站制作百度指数查询官网入口登录
  • 上海正规做网站公司电话郑州互联网公司排名
  • 电商网站运营规划佛山网络推广平台
  • 闵行区做网站公司如何制作自己的网页链接
  • 网站建设开发兴田德润一诺网络推广公司
  • 企业网站建设的一般要素包括域名ip地址在线查询
  • 网站系统运行环境个人网站设计图片