设置surfaceview大小后显示视频上边黑边下边灰边

宝贝等等我 2013-03-13 04:47:45
开发一个播放器,在播放视频时,需要按视频的原始比例进行视频比例的设置,我在RelativeLayout中方surfaceview控件,布局设置的分辨率为1280x720,surfaceview在代码中设置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="1280px"
android:layout_height="720px"
android:layout_marginBottom="60px"
android:background="@drawable/bg1"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/playLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >

<SurfaceView
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"/>

</LinearLayout>
</RelativeLayout>
计算视频需要设置的比例
int displayWith = playLinearLayout.getWidth();//获取布局的宽度1280
int displayHeight = playLinearLayout.getHeight();//获取布局的高度720

mVideoWidth = mMediaPlayer.getVideoWidth();//视频的宽度640
mVideoHeight = mMediaPlayer.getVideoHeight();//视频的高度272

if (mVideoWidth != 0 && mVideoHeight != 0) {
/* 设置视频的宽度和高度 */
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(displayWith, displayHeight);
//视频显示高度要重新调整
if (mVideoWidth*displayHeight > displayWith*mVideoHeight){
params.height = displayWith * mVideoHeight / mVideoWidth;
}//视频宽度要重新调整
else if (mVideoWidth*displayHeight < displayWith*mVideoHeight){
params.width = displayHeight * mVideoWidth / mVideoHeight;
}
else {
params.width = displayWith;
params.height = displayHeight;
}
m_SurfaceView.setLayoutParams(params);//设置surfaceview的大小,放大后是1280x544

m_SurfaceHolder.setFixedSize(params.width, params.height);
/* 开始播放 */
mediaPlayerPlay();

运行后,视频显示的大小是正确了,但是视频的上边是黑边,下边却是灰边,这灰边是怎么出现的?请大佬帮忙解决。

我的原始设计意图就是要视频按照正常比例缩放,避免全屏显示时,画面拉伸变形。
...全文
1176 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elieend 2013-12-12
  • 打赏
  • 举报
回复
我试了一下,你的问题是因为你在layout里把宽高像素写死了,如果不写死的话横屏显示时画面就不对了,不知道楼主后来解决了没有,我现在也遇到这个问题

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧