转载注明出处:
http://blog.csdn.net/u010181592/article/category/5893483
文章出自 我不只是看客/NotLooker的博客
先列出参考资料:
- Vitamio 官网:http://www.vitamio.org(不太稳定,时常打不开)
- 农民伯伯 博客:http://www.cnblogs.com/over140/category/409230.html(开发者之一,博客中有部分Vitamio中文API)
最近看到把SONY大L36h刷上7.0 完了半天,感觉电量优化做的还是不错的。但在使用测试app的时候发现,Vitamio在7.0上播放视频时没法弹出控制器 。 看了下官网并没有给出适配版本,自己动手,丰衣足食;
找到控制器类 MediaController 查看show方法,
因为 mediacontroller本质是一个popupWindow 所以直接看显示方法
mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, anchorRect.left, anchorRect.bottom);
在这行前边打上log,发现showAtLocation已经被执行,所以问题一定出在这个显示函数中;
看文档得知
showAtLocation(parent, gravity, x, y);
跟位置有关的是
gravity:弹出位置(以左下角为参照)
x,y:偏移量会以它为基准点 当x y为0,0是出现在底部居中
通过log分析
anchorRect.left = 0
anchorRect.bottom = 1080
1080位屏幕高,所以偏移量是没问题的,问题只能出在
Gravity.NO_GRAVITY上了
于是修改弹出方式为,TOP,并且修改位置修正为0,0;
搞定,猜测可能是因为7.0针对Gravity.NO_GRAVITY上显示方式进行了修改,导致弹出位置异常;
以及如果有人出现这种情况:
3
那是因为 Vitamio设置MediaController大小的时候高度默认用的是wrap_content
改成match就好了,bingo~
搞定
Github Demo:WHPlayer