有时候大家在启动软件的时候,会看到有一个比较炫酷的短视频,觉得很有意思,现在做项目的时候也遇到了,跟大家分享一下。

首先,在 res 目录下建一个文件夹 raw, 把你的视频文件(.mp4等)放进去。

然后, 在 layout 添加布局文件 my_videoview.xml, 内容如下:

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/videoView"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

接着, 在工程里添加对应的java文件,比如叫, videoview.java, 内容如下:

import android.app.Activity;

import android.content.Intent;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.Bundle;

import android.view.Window;

import android.view.WindowManager;

public class videoview extends Activity {

public static videoview inst = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

inst = this;

// 全屏显示

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.my_videoview);

/*主要代码起始位置*/

final VideoView vv = (VideoView) this.findViewById(R.id.videoView);

final String uri = "android.resource://" + getPackageName() + "/" + R.raw.herologo;

vv.setVideoURI(Uri.parse(uri));

vv.start();

vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

mp.start();

mp.setLooping(false);

}

});

vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

Intent intent = new Intent(inst, second.class);

startActivity(intent);

inst.finish();

}

});

/*主要代码结束位置*/

}

}

最后,需要在androidmanefest.xml 中声明下类 videoview;

不过自己测试的时候,发现视频在本人的手机上并没有全屏显示,而是在底部留下了不小的黑边(可能视频的尺寸与我的手机分辨率不一样)。于是搜索,发现重载VideoView 的某些方法可以重新设置视频播放器的大小。于是自定义类如下:

public class CustomVideoView extends VideoView{

public CustomVideoView(Context context) {

super(context);

}

public CustomVideoView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

//我们重新计算高度(这样就可以匹配不同手机的尺寸)

int width = getDefaultSize(0, widthMeasureSpec);

int height = getDefaultSize(0, heightMeasureSpec);

setMeasuredDimension(width, height);

}

}

然后,把布局文件 my_videoview.xml中的VideoView改成如下:

android:id="@+id/videoView"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

把videoview 里的 VideoView 类改成自定义的 CustomVideoView , 如下:

final CustomVideoView vv = (CustomVideoView ) this.findViewById(R.id.videoView);

重新编译运行,视频全屏播放,大功告成!!!

android 启动视频,android 启动页面全屏播放视频相关推荐

  1. android 4.0以上WebView不能全屏播放视频的解决办法

    上次鄙人做了一个简单的利用webView实现的一个浏览器!其中遇到了两个问题,一个是将浏览器中需要下载的内容托管到系统默认的下载程序进行下载,这个比较简单就不在这里讨论了:另一个问题就是我们的Andr ...

  2. Android全屏播放视频~包括刘海屏、隐藏时间状态栏

    需求是全屏播放视频,刘海屏上面也要播放. 下面是我实现的方式: 首先创建 CustomVideoView 工具类: import android.annotation.TargetApi; impor ...

  3. uniapp 判断页面是否是横竖屏,解决微信小程序video组件全屏播放视频遮盖自定义播放控件问题

    如果res.deviceOrientation 等于landscape 的话是竖屏,portrait则是横屏.因为用户每旋转一次屏幕就会触发里面的onShow钩子,因此在页面显示或横竖屏变化都会触发这 ...

  4. 记一次微信H5全屏播放视频的总结

    一.H5场景介绍 需求:在微信里打开一个H5页面,然后点击按钮全屏播放视频,等视频播放完成后,在视频上显示一个跳转按钮,点击按钮跳转到其他的页面. 二.遇到的问题 1.IOS设备微信上,视频不能预加载 ...

  5. 微信内置浏览器 非全屏播放视频解析

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放. 首先公布解决方案: 感谢知乎上的回答,原版微信内置浏览器 如何小窗不全屏播放视频? 感谢该问题的徐霖同学的回答 ...

  6. [RK3399][Android7.1] 调试笔记 --- 闪电浏览器全屏播放视频时黑屏

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用默认闪电浏览器全屏播放视频时黑屏, error log如下: 08-09 17:19:45 ...

  7. []转载]微信内置浏览器 非全屏播放视频解析

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放.首先公布解决方案: 感谢知乎上的回答,原版[微信内置浏览器 如何小窗不全屏播放视频?]感谢该问题的徐霖同学的回答 ...

  8. 微信内置浏览器 非全屏播放视频解析 1

    前提条件,接了一个项目要实现在微信公众号里课程播放,而且还有评论功能,视频需要小窗播放. 首先公布解决方案: 感谢知乎上的回答,原版[ 微信内置浏览器 如何小窗不全屏播放视频?] 感谢该问题的徐霖同学 ...

  9. 如何获取UIWebView中全屏播放视频事件

    这样一种情况,用UIWebView加载一个页面,竖屏,页面中有视频,现在我们希望在全屏播放这个视频的时候可以横屏.解决方法如下: 1.设置一个变量监控是否全屏播放视频 2.根据这个变量设置是否可以横屏 ...

最新文章

  1. easyui datagrid 的小纠缠
  2. ETCD实现技术总结
  3. SDUT 1265-马停下过河卒(DFS)
  4. 源码免杀处理的技巧与tips
  5. Visual Studio怎么使用中文帮助文档
  6. .NET 开源项目 StreamJsonRpc 介绍[下篇]
  7. mysql是小型数据库_mysql小型数据库
  8. #pragma pack(push,1)与#pragma pack(1)的区别(转)
  9. bean转换 传类型_java开发中DTO、VO、PO之间的转换你应该这么操作
  10. macOS Big Sur的小部件使用技巧
  11. 程序员相亲的血泪史,千万别做这些事情!
  12. __VA_ARGS__和##__VA_ARGS__的区别(转载)
  13. 【特征提取】基于matlab一帧语音共振峰提取【含Matlab源码 1768期】
  14. java gbk转机内码_\xd5\xd2\xb2\xbb\xb5\xbd\xd6 gbk内码转中文方法
  15. react 使用iconfont 图标
  16. 大数据,先推广应用再谈“共享”
  17. 谈谈Python的Flask框架学习与福利分享
  18. python3 科学计算_python3 科学计算之pandas入门(三)
  19. 清默网络——CISCO ASA SSL ***详解
  20. C++第2次实验作业

热门文章

  1. 移动通信的频段、频率与频点
  2. Unity3D FPS帧数修改
  3. MySQL-存储引擎-索引-锁-集群
  4. NFS客户端不能unmount 之解决
  5. 活动回顾 | 浙大图灵大讲堂《数据库技术发展之道》圆满结束
  6. 主域名跳转到带www的域名方法,以及对seo有什么影响?
  7. 纳秒级分布式无锁限流插件 Current-Limiting
  8. 64位oracle 和64位 PL/SQL 的配置
  9. ❤️大学三年沉淀,把我的学习经验分享给你,爆肝万字带你走进编程世界!❤️
  10. 传奇服务器怎么设置状态是开区还是合区,传奇私服开区合区教程全解