Android为TV端助力 修改videoview的宽度和高度

本文介绍了三种修改Android VideoView尺寸的方法:通过重写onMeasure方法实现自定义宽高;设置SurfaceView的固定尺寸;直接修改MediaSurfaceView的LayoutParams属性。

如果直接用android的videoview。他是不允许你随意的修改宽度和高度的,所以我们要重写videoview!

package com.hysmarthotel.view;

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

public class MyVideoView extends VideoView{
public MyVideoView(Context context) {
super(context);
}

public MyVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MyVideoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = getDefaultSize(getWidth(), widthMeasureSpec);
int height = getDefaultSize(getHeight(), heightMeasureSpec);
setMeasuredDimension(width, height);   
}

}

主要就是onMeasure方法,我们重写的onMeasure方法而不用谷歌的,这样我们就可以随意的控制videoview的宽度和高度

2.还有一种方法是修改

holder = surfaceView.getHolder();
holder.setFixedSize(mVideoWidth, mVideoHeight);
这样也可以改变视频控件的宽度和高度
3.第三种方法是直接修改
mMediaSurfaceView.setLayoutParams(new RelativeLayout.LayoutParams(600,600));

 

转载于:https://www.cnblogs.com/xiaoxiaing/p/5570847.html

### 调整 AndroidVideoView宽度Android 开发中,`VideoView` 是一种常用的控件用于播放视频。然而,默认情况下 `VideoView` 不允许直接通过代码随意调整其宽度高度[^2]。为了实现这一功能,可以通过以下方法完成: #### 方法一:使用 LayoutParams 动态设置宽度 可以通过获取当前 `VideoView` 的父容器的 `LayoutParams` 并对其进行修改来达到目的。以下是具体代码示例: ```java LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) videoView.getLayoutParams(); layoutParams.width = desiredWidth; // 设置所需的宽度 videoView.setLayoutParams(layoutParams); ``` 上述代码片段展示了如何动态更改 `VideoView` 的宽度[^1]。 #### 方法二:XML 布局中静态设定宽度 如果希望在 XML 文件中预先定义好宽度,则可以直接指定固定的数值或者匹配父容器的方式: ```xml <VideoView android:id="@+id/video_view" android:layout_width="match_parent" <!-- 或者固定值如 300dp --> android:layout_height="wrap_content"/> ``` #### 方法三:保持屏幕常亮并适配不同方向下的显示比例 当涉及到横竖屏转换时,可能还需要考虑视频的比例问题以及防止画面被拉伸的情况发生。可以在 Activity 配置文件 (`AndroidManifest.xml`) 中声明支持多种屏幕方向,并结合 Java/Kotlin 实现逻辑处理: ```xml <activity android:name=".YourActivityName" android:configChanges="orientation|screenSize" android:screenOrientation="sensorLandscape"> </activity> ``` 同时,在程序运行期间监听配置变化事件以便及时更新 UI 界面尺寸参数[^4][^5]。 综上所述,无论是采用编程方式还是借助资源描述符都能很好地满足对于调节 Android 应用内 VideoView 宽度的需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值