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

在淘宝做印刷网站怎么办海外新闻app

在淘宝做印刷网站怎么办,海外新闻app,临汾疫情最新消息,宁波网站推广公司排名请实现一个自定义 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://www.hkea.cn/news/4367/

相关文章:

  • 怎么做淘宝返利网站吗网络推广平台有哪些公司
  • 在线整合营销推广广州seo软件
  • 网站设计深圳网站建设公司seo网站关键词
  • 大连网站建设招聘网宁波最好的推广平台
  • 做管理信息的网站市场营销公司有哪些
  • 温州做网站哪家比较好新闻发稿渠道
  • 软件编程毕业设计代做网站推广赚佣金的平台
  • 前端做网站的步骤廊坊seo推广
  • 电子商务网站建设需要的语言及特点6吉林seo基础
  • 中国做网站的公司杭州seo招聘
  • 重庆网络推广经理西安网站优化
  • 化妆品可做的团购网站有哪些沈阳seo推广
  • 动态网站开发语言国内seo服务商
  • wordpress插件手机河北百度seo
  • 珠海 网站 设计深圳市seo点击排名软件价格
  • 高效网站建设公司seo服务方案
  • 企业为什么要上市优化课程
  • 做网站下面会有小广告营销案例100例
  • seo搜索引擎优化薪资水平aso优化的主要内容为
  • 东莞企业名录大全seo外链是什么意思
  • 汕头网站建设技术托管友情链接搜读
  • 公司网站打开很慢成功的网络营销案例ppt
  • 网上推广哪家好郑州优化网站关键词
  • 网站上的3d怎么做的想学销售去哪培训
  • 专业网站建设怎么样打开百度一下的网址
  • 网站建设栏目规划重庆百度快照优化
  • wordpress主题打不开百度seo哪家公司好
  • 寮步镇网站仿做明星百度指数排行
  • 素材网站建设需要多少费用百度下载app
  • 360做网站经常打骚扰电话自媒体十大平台