请教下各位水友,就是我的surfaceview在全屏之后没有铺满全屏,
大致的伪代码是这样的,自定义的Player继承了frameLayout ,然后增加了一层surfaceview和一层视频控件层,
在全屏之后,控件层全屏了,但是surfaceview并没有铺满,宽度是铺满的,但是高度还是全屏之前的高度。
小窗口
全屏后
您的每一个用心回答,都会让这个世界变得更美好一些!
感谢大家解答,是因为我做绘制的时候,返回的bitmap做了拉伸后,横屏的时候忘记处理拉伸的比例导致的
相似代码 可以铺满全屏
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(final MediaPlayer mp) { // 点击过快可能导致mp未解析完成 故延时 handler.postDelayed(()-> { if (mp == null) { JXLog.e("mediaListener onPrepared mp is null "); return; } jxSurface.setPause(false); int vWidth = mp.getVideoWidth(); int vHeight = mp.getVideoHeight(); // 该LinearLayout的父容器 android:orientation="vertical" 必须 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.layoutPlay); int lw = linearLayout.getWidth(); int lh = linearLayout.getHeight(); float wRatio = (float) vWidth / (float) lw; float hRatio = (float) vHeight / (float) lh; // 选择大的一个进行缩放 float ratio = Math.max(wRatio, hRatio); vWidth = (int) Math.ceil((float) vWidth / ratio); vHeight = (int) Math.ceil((float) vHeight / ratio); // 设置surfaceView的布局参数 LinearLayout.LayoutParams lp= new LinearLayout.LayoutParams(vWidth, vHeight); lp.gravity = Gravity.CENTER; jxSurface.setLayoutParams(lp); jxSurface.setPlaying(true); mediaPlayer.start(); },100); } });
并没有铺满 代码呢 布局呢 不能只给几张图让大家伙猜吧
感谢大家解答,是因为我做绘制的时候,返回的bitmap做了拉伸后,横屏的时候忘记处理拉伸的比例导致的
相似代码 可以铺满全屏
并没有铺满 代码呢 布局呢 不能只给几张图让大家伙猜吧