Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 调整视频大小大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试动态设置 Android VideoView的大小.我看过StackOverflow以及互联网;我找到的最佳解决方案是从 here开始.我已经将我的实现放在下面:
public class ResizableVideoView extends VideoView {

    public ResizableVideoView(Context C) {
        super(c);
    }

    privatE int mVideoWidth = 100;
    privatE int mVideoHeight = 100;

    public void changeVideoSize(int width,int height) {
        mVideoWidth = width;      
        mVideoHeight = height;

        // not sure whether it is useful or not but safe to do so
        getHolder().setFixedSize(width,height); 

        forceLayout();
        invalidate(); // very important,so that onMeasure will be triggered
    } 

    public void onMeasure(int specwidth,int specheight) {
        Log.i("onMeasure","On Measure has been called");
        setMeasuredDimension(mVideoWidth,mVideoHeight);
    }

    public void onDraw(Canvas C) {
        super.onDraw(c);
        Log.i("onDraw","Drawing...");
    }
}

视频在Android模拟器和Motorola Droid X上正确调整大小;但在摩托罗拉Droid上,VideoView会调整大小,但VideoView中播放的视频不会调整大小.在摩托罗拉Droid上,如果VideoView设置为比视频播放更大的尺寸,VideoView中会出现黑色背景,视频在VideoView的左上角播放在黑色背景的顶部.

如何在Android中正确调整VideoView的大小?

谢谢,
万斯

解决方法

我的实现是这样的
RelativeLayout.LayoutParams videoviewlp = new RelativeLayout.LayoutParams(newwidth,newheight);
    videoviewlp.addRule(RelativeLayout.CENTER_HORIZONTAL,RelativeLayout.TRUE);
    videoviewlp.addRule(RelativeLayout.CENTER_VERTICAL,RelativeLayout.TRUE);
    videoview.setLayoutParams(videoviewlp);
    videoview.invalidate();

通过使视频视图无效,您将强制它使用新的LayoutParams(以及新尺寸)重绘整个视频视图.

大佬总结

以上是大佬教程为你收集整理的android – 调整视频大小全部内容,希望文章能够帮你解决android – 调整视频大小所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。