6

私のプログラムでは、ビデオを全画面表示しようとしていますが、再生中のビデオのアスペクト比を壊すことなく、

Androidのデフォルトプレーヤーでは、ボタンを押すと左上隅にボタンがあり、アスペクト比を維持するビデオの歪みなしでビデオをフルビューにシフトします:

下の画像のように:

ここに画像の説明を入力

次のコードでフルスクリーンビデオを取得しようとしています:

 <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
       android:layout_height="fill_parent" > 
     <VideoView android:id="@+id/myvideoview" 
         android:layout_width="fill_parent" 
         android:layout_alignParentRight="true"
          android:layout_alignParentLeft="true" 
         android:layout_alignParentTop="true"
          android:layout_alignParentBottom="true" 
         android:layout_height="fill_parent"> 
      </VideoView> 
   </RelativeLayout> 

上記のコードはフルスクリーンビデオにつながりますが、アスペスト比を維持しません

縦横比を壊さずにフルスクリーンビデオを取得する方法について、誰かアドバイスをください。

自分の動画は、アプリ リソース フォルダーの raw フォルダーに保存されます。

完全に機能するコードを提供してください

こことグーグルでたくさん検索しましたが、ターゲットが見つかりません。

別の投稿がスタックオーバーフローで見つかりましたが、同じ質問がありますが、このリンクには正解がありません:

ビデオを引き延ばさずに全画面表示

次のように、videoview を使用してアプリに動画を表示します。

  public class Video extends Activity {   
    private VideoView videoview;    
      @Override  
         public void onCreate(Bundle icicle) {  
              super.onCreate(icicle);      
               setContentView(R.layout.main);   
   videoview = (VideoView) findViewById(R.id.count_videoview);  
   videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName()
          +"/"+R.raw.first_video));    
   videoview.setMediaController(new MediaController(this));    
   videoview.requestFocus();    
   videoview.start();   
                 }
          } 

前もって感謝します 。

4

1 に答える 1

0

元のビデオの高さと幅を取得します。
画面の高さと幅を取得します (現在の向きで)。

float ratioWidth = screenWidth / videoWidth;
float ratioHeight = screenHeight / videoHeight;
float fullWidth;
float fullHeight;
if (ratioWidth < ratioHeight ) {  
    fullWidth = videoWidth * ratioWidth;
    fullHeight = videoHeight * ratioWidth;
} else {
    fullWidth = videoWidth * ratioHeight;
    fullHeight = videoHeight * ratioHeight;
}

fullWidthとを に設定fullHeightVideoViewます。

于 2012-09-30T18:09:51.277 に答える