自定义videoview实现全屏播放_videoview全屏-程序员宅基地

技术标签: videoview  android  视频  Android笔记  

最近的项目中需要横屏播放视频的功能,本来是想通过设置videoview宽高的方式来实现,不过后来发现效果不佳,遂决定自定义一个videoview来解决这个问题。

代码如下:

自定义view:

package com.sac.widget;

import android.R.integer;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.VideoView;

public class MyVideoView extends VideoView {

	public MyVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
		super(context, attrs, defStyleAttr);
		// TODO Auto-generated constructor stub
	}
	
   
	public MyVideoView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}
    
	public MyVideoView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	@Override
	protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
		int width = getDefaultSize(0, widthMeasureSpec);
		int height = getDefaultSize(0, heightMeasureSpec);
		setMeasuredDimension(height, width);
	}

}

主界面:

 if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
	  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
	 }
	    DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);
		
		width = dm.widthPixels;
		height = dm.heightPixels;
		Log.v("width", width+"");
		Log.v("height", height+"");
		
	    LayoutParams lp = videoView.getLayoutParams();
		lp.width = height;
		lp.height = width;
	    
		videoView.setLayoutParams(lp);

不要忘记在xml中引用自定义view。

这样就大功告成了





























版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/superyu1992/article/details/46415321

智能推荐

ADFS服务证书更新介绍-程序员宅基地

文章浏览阅读542次。ADFS服务证书更新介绍说到ADFS(Active Directory Federation Services)服务,相信大家都已经了解了,ADFS服务我们可以理解为SSO(单点登录),在windows服务下, 主要应用到了windows azure或者office365的用户权限登录。ADFS将活动目录拓展到Internet。要理解这一点,可以考虑一般活动目录设施的工作原理..._iis 证书 adfs/ls

Docker学习(八) -- Docker-compose容器编排_comppse pull-程序员宅基地

文章浏览阅读1.2k次。是什么docker-comppse是docker官方的开源项目,负责实现对docker容器集群的快速编排。Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器..._comppse pull

for循环给list赋值是,要注意list要初始化且放过在for外面_循环内给列表初始化赋值-程序员宅基地

文章浏览阅读5.8k次。public List<Category> findAll() { Jedis jedis = JedisUtil.getJedis(); Set<Tuple> cSet = jedis.zrangeWithScores("category", 0, -1); List<Category> clist = nul..._循环内给列表初始化赋值

技术团队管理:技术分享_技术团队技术分享内容-程序员宅基地

文章浏览阅读2.9k次。这里写自定义目录标题为什么要进行技术分享如何做技术分享找人找分享主题内容准备为什么要进行技术分享技术团队,员工为什么要离职?钱没给到位?没学到技术?技术成长对初,中级开发人员来说非常重要,曾经面试过很多人,他们的梦想都是成为技术架构师,他们都很关心在你的公司能学到什么技术,对自己的技术提升大不大.只有有技术氛围的公司,不断去应用新技术的公司,才可能让开发人员留下来. 如果老的技术一直在使用..._技术团队技术分享内容

从调试器控制异常和事件:SXE、 SXD、 SXN、SXI_sxixn-程序员宅基地

文章浏览阅读1w次。控制异常和事件在用户模式和内核模式应用程序中有很多方法用于截获和处理异常。激活的调试器、即时调试器或内部的错误处理程序都是异常处理的通常方法。关于这些错误处理方式优先等级的更多信息,查看启用即时调试。当Microsoft Windows操作系统允许由调试器来处理异常时,产生异常的程序会中断到调试器。即应用程序停止运行而调试器被激活。之后,调试器可以用各种方式处理掉异常或者分_sxixn

监控显示服务器超时,监控连接服务器超时怎么解决-程序员宅基地

文章浏览阅读3.8k次。监控连接服务器超时怎么解决 内容精选换一换本文提供了分布式数据库中间件DDM产品介绍,快速入门、API接口的新特性的快速入口。您在了解云手机的优势和应用场景后,如果想体验云手机的功能,或者需要部署真实的业务,建议您参考本节操作购买云手机。操作流程如图1所示。准备工作包含两项任务:注册华为云并实名认证;创建密钥对。其中,密钥对用于鉴权,在购买服务器时要选择一个密钥对,以便连接云手机(建立SSH隧道)..._监控响应超时是什么回事

随便推点

统计字符串出现的次数(C)_c语言两个字符串统计一个出现的次数-程序员宅基地

文章浏览阅读2.1k次。//头文件#include <stdio.h>#include <stdlib.h>#include <string.h>//主函数int main(){ //定义字符串1 char *src = "hello llo llo llo world"; //定义字符串2 char *dist = "llo"; //声明统计次数的变量 int count = 0; //strstr函数判断字符串2是否是字符._c语言两个字符串统计一个出现的次数

ubuntu16.04在标题栏显示内存、CPU、网速_ubuntu查看cpu 内存 网络 并显示在上方-程序员宅基地

文章浏览阅读1k次。使用的工具是System Monitor。 安装过程也简单:sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitorsudo apt updatesudo apt install indicator-sysmonitor然后在terminal中输入indicator-sysmonitor &启动。 在标题栏出现下图所示的信息。_ubuntu查看cpu 内存 网络 并显示在上方

Chart GPT 暗黑版上线,网络安全问题已经显现_暗黑版gpt-程序员宅基地

文章浏览阅读305次。Chart GPT刚刚发布,一位不知名的作者将它的孪生兄弟“DAN”就在世界上最黑暗的暗网上线了。_暗黑版gpt

二级指针和二叉树创建的问题_二叉树 二级指针-程序员宅基地

文章浏览阅读355次。二叉树创建为什么要用到到二级指针的问题_二叉树 二级指针

matlab struct 删除,matlab 中struct操作-程序员宅基地

文章浏览阅读3.8k次。结构数组的创建MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。1. 使用直接引用方式定义结构与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。建立一个复数变量xx.real = 0; % 创建字段名为real,并为该字段赋值为0x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0x =real: 0imag: 0..._matlab 将struct结构中f字段为1的所有行去除

算法 数据结构 斐波那契数列 递归实现斐波那契数列 斐波那契递归的优化 斐波那契数列递归求解 多路递归实现 斐波那契算法系列 数据结构(十一)_算法设计基础中爬楼梯问题用斐波那契数列递归技术怎么写-程序员宅基地

文章浏览阅读766次。排查发现:当n=46是正常的,n=47时,前面两个值的相加已经超过了int最大值int.max_value= 21 4748 3647 所以出现负数。使用数组进行优化,也有一个问题,数组只有n-1, n-2两个值有用。对于计算之后,存储前面n-3的值没有了意义;尾递归(防止栈溢出) + 只取n-1, n-2的值流转。使用数组,存储之前计算的数据,减少计算次数。这种方法直接用数组去存储前面计算的值,不用重复计算。之前的例子是每个递归函数只包含一个自身的调用,这称之为 single recursion。_算法设计基础中爬楼梯问题用斐波那契数列递归技术怎么写

推荐文章

热门文章

相关标签