1. 原理

不直接改变Codec输出的视频宽高比,而是改变视频播放器窗口的大小。

2. 设置Window

需要将Window设置未可以超出屏幕尺寸

mWindow.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

3. SurfaceView保持宽高比

mSurfaceHolder.setFixedSize(mVideoWidth, mVideoHeight);

4. 改变Surface窗口大小

ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) mSurface.getLayoutParams();
if (scale > 4.0f) {scale = 4.0f;
} else if (scale < 0.25f) {scale = 0.25f;
}
layoutParams.width = (int) (windowWidth * scale);
layoutParams.height = (int) (windowHeight * scale);mSurface.setLayoutParams(layoutParams);


												

Android 视频缩放/放大相关推荐

  1. Android视频的放大和缩小

    Android视频的放大和缩小 这个还是在很久以前的时候写的,当时公司有一个需求,就是需要仿360或者是小蚁的app,做一个视频的放大缩小,当时是搜遍了,搜到的都是关于图片的放大缩小等,无奈之下,就自 ...

  2. Android 视频手势缩放与回弹动效实现(一)

    文章目录 Android 视频手势缩放与回弹动效实现(一) 1. 功能需求 2. 实现原理 2.1 如何检测手势缩放? 1. View.onTouchEvent关键代码 2. ScaleGesture ...

  3. Android 视频旋转、缩放与回弹动效实现(二)

    文章目录 Android 视频旋转.缩放与回弹动效实现(二) 功能需求 实现思路 1. 旋转识别 旋转识别:RotateGestureDetector 2. 旋转处理 旋转处理:VideoTouchR ...

  4. android 自定义view,缩放放大,平移边界检测

    由于项目的需要,自定义个view,控制父控件,既可以缩放放大,滑动边界检测.自己实现了通过父控件就能操作子控件的自定义view,直接引用就可以使用. 下面是我实现的一个思路,贴了部分代码,大家可以参考 ...

  5. android视频适配与裁剪

    https://my.oschina.net/u/1403288/blog/634051 摘要: android视频播放时对不同分辨率的手机的视频进行等比例缩放,然后裁剪掉一个方向上的多余部分,使之在 ...

  6. Android实现图片放大缩小

    蓝蓝的天 蓝蓝的天,白云朵朵. White clouds in the blue sky. 目录视图 摘要视图 订阅 新版极客头条上线,每天一大波干货     任玉刚:Android开发者的职场规划  ...

  7. 微信 Android 视频编码爬过的那些坑

    [编者按]Android 视频相关的开发,大概一直是整个 Android 生态.以及 Android API 中,最为分裂以及兼容性问题最为突出的一部分,本文从视频编码器的选择和如何对摄像头输出的 Y ...

  8. FFMPEG AvFilter使用实例(实现视频缩放,裁剪,水印等)

    FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出.我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件.在上代码之前先明白几个概念: Fi ...

  9. Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果

    前言      这是视频编辑器系列的第二篇文章,在上篇文章中,我们讲解了利用OpenGl和SurfaceView进行视频预览,MediaCodec和MeidaMuxer进行视频录制和断点续录.而这篇主 ...

  10. FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)

    FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出.我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件.在上代码之前先明白几个概念: Fi ...

最新文章

  1. BCH表现良好,BTC调整蓄势
  2. python的tkinter的用法_Python Tkinter图形工具使用方法及实例解析
  3. 关于在HP-UX 11iV2系统中安装oracle10g的问题--请大神帮忙!!!
  4. Luogu 3008 [USACO11JAN]道路和飞机Roads and Planes
  5. @RequestMapping的使用
  6. 在理解通用近似定理之前,你可能都不会理解神经网络
  7. mysql报错5_mysql5.5 启动报错:ERROR!_MySQL
  8. Ubuntu16.4(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境安装
  9. srt编辑的文件在linux显示乱码,解决看本地视频srt字幕乱码问题教程-srt文件
  10. 这些高校表现亮眼!最新全球学术排名,频出黑马
  11. 怎样把输入的文本转换成html代码存入数据库啊
  12. bread是可数还是不可数_为什么英语里的面包bread是不可数名词?听老师给你讲语法,一听就明白了...
  13. 金山毒霸免费Wifi独立版,只需一块无线网卡,完爆360随身wifi
  14. 微信小程序插件wxParse的使用
  15. 超详细linux部署ecshop流程
  16. 【省选模拟】20/04/18
  17. 纯HTML CSS制作导航栏 下拉菜单
  18. 工具-如何屏蔽浏览器中的广告(Adblock Plus(广告屏蔽器))
  19. 10分钟教你用Python获取百度地图各点的经纬度信息
  20. CubeMX生成的STM32F4xx MDK工程FPU和DSP库的使用

热门文章

  1. 怎么用计算机测试手速,火凤凰游戏APM实时手速测试器
  2. matlab多行注释和figure图像的title使用变量和下划线
  3. 局域网管理软件有哪些_考勤系统软件有哪些你知道吗
  4. EAS后台事务的超时时长如何设置?
  5. 乐优商城遇到的坑(二):Day56 品牌管理之虚拟机CentOS6.5我真的不会装
  6. 模糊C均值聚类算法matlab实现,FCMClust(模糊c均值聚类算法MATLAB实现)
  7. MATLAB数值计算——矩阵运算乘法、除法、乘方
  8. python调用java之启动jpype
  9. 解决MATLAB不能设置为.m .slx .mat等文件默认打开方式
  10. 世界杯直播背后的黑科技 腾讯云极速高清技术驱动体育直播发展