0

У меня есть VideoView внутри XML, который находится внутри другой XMLПолноэкранный видео, даже если VideoView внутри отличается XML (используя включить)

<main.xml 
    <include layout = "@layout/subLayou1"/> > 
</main> 

<subLayout1.xml 
    <include layout = "@layout/subLayout2"/> > 
</subLayout1> 

<subLayout2.xml 
    <VideoView 
     android:id="@+id/videoView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_centerInParent="true" 
     android:background="@android:color/transparent" /> 

    <Button for full screen /> 
</subLayout2> 

, но я хочу это VideoView в subLayout2 взять на полный экран при нажмите кнопку полного экрана .. пожалуйста, помогите мне!

ответ

0

В своем коде вы поставили следующую ширину высоту для sublayout

android:layout_width="match_parent" 
android:layout_height="match_parent" 

Sublayout1 включает в себя только sublayout2. Вам нужно указать определенную ширину и высоту, отличную от wrap_content и match_parent.

Затем в файл Java для этой деятельности:

VideoView vv = findViewById(R.id.videoView); 
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams(); 


    fullscreenbtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      params.width = metrics.widthPixels; 
      params.height = metrics.heightPixels; 
      vv.setLayoutParams(params); 
     } 
    }); 

Для установки видео обратно на оригинал:

normalscreenbtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      params.width = (int) (original_width_dp*metrics.density); 
      params.height = (int) (original_height_dp*metrics.density); 
      vv.setLayoutParams(params); 
     } 
    }); 

Во всем экране вы найдете значение размера экрана, а затем установить его на VideoView. При минимизации вы должны вернуть значение к оригиналу. metrics.density преобразует dp в пиксели.

Reference

Смежные вопросы