2013-01-16 80 views
3

我正在使用android中的一个自定义视频播放器。我正在使用VideoView播放视频。最初我的VideoView将有一定的尺寸(可以说size =(width,height)=(400,300))。我的自定义视频视图的控制按钮之一是“展开/折叠”。点击“展开/折叠”按钮后,如果当前VideoView尺寸为Inline,并且反之亦然(从全屏到Inline),则需要将VideoView尺寸设置为全屏(表示设备的全屏尺寸)。VideoView内嵌/全屏模式切换

有谁知道正确的方法来完成上述任务吗?

回答

10

首先,你有胆量问一个Android的问题,有一个iOS的标志;)(开玩笑)

但是,我认为你可以这样做:

DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams(); 
    params.width = metrics.widthPixels; 
    params.height = metrics.heightPixels; 
    params.leftMargin = 0; 
    videoView.setLayoutParams(params); 

,并设置它回:

DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams(); 
    params.width = (int) (400*metrics.density); 
    params.height = (int) (300*metrics.density); 
    params.leftMargin = 30; 
    videoView.setLayoutParams(params); 

我假设你知道如何制作OnClickListener

我这里得到的信息:VideoView Full screen in android application

EDIT1
我可以很快想到的两件事情。
1.补充一点:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
2或试试这个:

YourButton.setVisibility(View.GONE); 

YourButton.setVisibility(View.INVISIBLE); 
+0

我通过这个答案去了,但这里的问题是,如果我的布局是有任何一个额外的控制如使用VideoView的按钮或文本视图,则VideoView不会全屏显示设备。它保留这些控件的空间,并在屏幕的剩余部分显示VideoView。但我需要全屏显示视频,而不考虑额外的控制。 (如果在线性布局中有VideoView的textview,那么当点击全屏按钮时,VideoView应该采取全屏控制并应该隐藏文本视图) – macpandit

+0

是的Bigflow :)基本上我是iOS应用程序开发人员,但是现在探索android sdk。我希望你从上面的评论中得到了我确切的问题。在这个问题上的任何形式的帮助是非常可观的:) – macpandit

+1

@macpandit作出编辑。希望这可以工作。说实话,从来没有使用VideoView呢:)。但试图帮助。 – Bigflow