[导读]这篇文章主要为大家详细介绍了Android videoview抢占焦点的处理方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

问题描述:

android 机顶盒应用:

应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button。

视频框设置无焦点,按键有焦点。

首次进入应用时焦点正常,聚焦在button上;但是当点击button跳转到下一个activity并返回时,焦点却聚焦到了videoview上,并且代码里强制设置焦点:

Button.requestFocus();

无效,现象是视频加载时,焦点是在button处,但是当视频加载完成开始播放时,整个activity失去焦点,几秒后,焦点跑到videoview上面。

原因分析:

查看了一下VideoView的源码,发现原因出在初始化上面上:private void initVideoView() {

mVideoWidth = 0;

mVideoHeight = 0;

getHolder().addCallback(mSHCallback);

getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

setFocusable(true);//问题出在这里

setFocusableInTouchMode(true);

requestFocus();

mPendingSubtitleTracks = new Vector>();

mCurrentState = STATE_IDLE;

mTargetState = STATE_IDLE;

}

看到这里就豁然开朗了,这就解释了为什么xml中设置了android:focusable="false"而videoview仍然能获取焦点的问题,也解释了为什么button会获得焦点而当视频加载好后被videoview抢占的问题。

解决方法:

明白了问题所在就好解决了,因为只是解决焦点问题,所以无需自定义videoview那么麻烦,只需要重写onResume()方法即可:@Override

protected void onResume() {

super.onResume();

videoView.setFocusable(false);

}

总结:

一定要多看源码!

android videoview按钮,Android videoview抢占焦点的处理方法相关推荐

  1. android释放焦点_Android videoview抢占焦点的处理方法

    问题描述: android 机顶盒应用: 应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button. 视频框设置无焦点,按键有焦点. 首次进入应用时焦点正常,聚 ...

  2. android 悬停按钮,Android悬浮按钮的使用方法

    悬浮按钮效果如下图所示: 步骤1:引用 compile 'com.laocaixw.suspendbuttonlayout:suspendbuttonlayout:1.0.3' 步骤2:xml布局 a ...

  3. android倒角按钮,Android实现圆角Button按钮

    本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...

  4. android 正方形按钮,Android《FloatingActionButton》

    悬浮按钮 继承:⇐ FloatingActionButton ⇐ VisibilityAwareImageButton ⇐ ImageButton ⇐ ImageView,所以FloatingActi ...

  5. android 椭圆形按钮,Android中使用drawable实现左右椭圆形的按钮

    本文和上一篇文章类似,只是增大了圆角半径的值,所以左右两边看着像椭圆形状,我们先来看看完成后的效果图: 首先,在res/drawable目录下新建一个shape形状,文件名为round_rect_ov ...

  6. android spinner 按钮,android sqlite和spinner的用法示例

    在此示例中,我们在单击按钮时添加了标签,并在微调器上显示了所有添加的标签.如上例所示,需要扩展SQLiteOpenHelper类以在sqlite上执行操作. 我们在DatabaseHandler类中重 ...

  7. android 绘制按钮,Android:使用xml定义创建一个三角形的按钮(可绘制)

    如果有人仍然有这个问题: > xml: android:fromDegrees="45" android:toDegrees="0" android:pi ...

  8. android 销毁按钮,Android实现所有Activity全部销毁

    <一>.在平时开发中打开过三个activity,分别为:A, B, C,用android设备中的"back"按钮,需要点击三下,才能退出到主界面(即需要三次操作才能销毁 ...

  9. android 并排按钮,Android TextView和Button并排,ellipsize左侧TextView

    我有一个左对齐的TextView和一个右对齐的按钮并排. 我希望按钮占用右边所需的空间(取决于其中的文本)和左边的文本以尽可能多地填充,并在任何溢出上进行椭圆化处理. |Long title that ...

最新文章

  1. raspberry pi 3B 树莓派 安装tensorflow
  2. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO
  3. python入门教程共四本书籍-Python入门书籍有哪些?
  4. Java杂记3—流程控制之条件
  5. ReactNative手势解锁(react-native-ok-gesture-password)
  6. CodeForces - 1537E2 Erase and Extend (Hard Version)(扩展KMP-比较两个前缀无限循环后的字典序大小)
  7. AI:你们是不是在等一顶红帽子?
  8. gmod的css模块放哪,gmod模式怎么更换?gmod模块安装步骤教程
  9. Samba整合Openldap认证
  10. rabbitmq详细入门文档+springboot结合使用
  11. 用命令实现Win7远程桌面关机和重启
  12. pytorch torch.transpose
  13. ASP.NET Session使用详解
  14. 计算机学院李成伟,【迎新专题二】校长李成伟带队视察迎新工作
  15. c语言大作业背单词,c语言必背代码 c语言入门必背单词 c语言必背100代码
  16. 如何看Linux哪些进程占内存,linux 查看进程占用内存
  17. ThinkPad Tablet2升级Windows10(各种故障及解决方案)
  18. HTML5 页面布局【结合案例】
  19. adb push php,ADB指令合集-ADB指令如何执行刷Recovery,重启进Recovery,双Wipe和刷ROM手机刷机...
  20. mysql——时间显示格式 dateformat函数

热门文章

  1. python2和python3 的区别
  2. 封装API的一种方式,和解决跨越问题
  3. android控件向内弧度_描边/内间距/四个角不同弧度(包括圆角)
  4. 学习python-day01-01---转自Python分布式爬虫打造搜索引擎Scrapy精讲
  5. QNX----QNX内核移植到ZYNQ7010 (黑金开发板)
  6. caffe学习笔记(一): caffe训练流程(超详细)
  7. 快速集成融云SDK– Android Studio
  8. PostgreSQL pgmetrics - 多版本、健康监控指标采集、报告
  9. 可编程控制器的应用分类介绍
  10. 第三百零八至三百二十天 how can I 坚持