2017-07-01 172 views
0

有人可以幫助我嗎?我想要一個簡單的方法,通過簡單地點擊視頻兩次或在視頻播放器中使用全屏模式圖標,在WebView中播放的視頻上啓用全屏。WebView中的全屏視頻

在這裏我有什麼:

package com.orb.tvdroid; 

import android.app.Activity; 
import android.graphics.Color; 
import android.graphics.drawable.ColorDrawable; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.webkit.WebChromeClient; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

/** 
* Created by Igor Lima on 29/06/2017. 
*/ 
public class TVDroid extends AppCompatActivity { 

    WebView TVDroid; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.tv_droid); 

     final Activity activity = this; 

     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setIcon(R.mipmap.ic_launcher); 
     getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#007f00"))); 

     Toast.makeText(getApplicationContext(), "Espere o carregamento da página completar.", Toast.LENGTH_LONG).show(); 

     Toast.makeText(getApplicationContext(), "Em seguida, escolha um dos canais disponíveis para começar a transmissão.", Toast.LENGTH_LONG).show(); 

     final String link = this.getIntent().getStringExtra("Link"); 

     TVDroid = (WebView) findViewById(R.id.TVdroid); 
     this.registerForContextMenu(TVDroid); 
     WebSettings webSettings = TVDroid.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     TVDroid.setWebChromeClient(new WebChromeClient() { 

      public void onProgressChanged(WebView view, int progresso) { 
       activity.setTitle("TVDroid... " + progresso + "%"); 
       activity.setProgress(progresso * 100); 
       if (progresso == 100) 
        activity.setTitle("TVDroid"); 
      } 
     }); 

     TVDroid.setWebViewClient(new WebViewClient() { 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return true; 
      } 
     }); 



     TVDroid.loadUrl(link); 
    } 
} 

我已經看着許多解決方案在這裏,但其中許多人似乎有點太多了我想做的事情。我不想要一個完整的視頻播放器功能,我只需要能夠雙擊視頻播放器並將其設置爲全屏顯示在我的應用程序中。

在此先感謝。

只是沒有人,感謝維沙爾你的想法,這裏是最後的onCreate:

WebView TVDroid; 
    ProgressDialog carregando; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_fullscreen); 

     this.setTitle("TVDroid"); 

     carregando = new ProgressDialog(TVDroid.this); 
     carregando.show(); 

     mVisible = true; 
     mControlsView = findViewById(R.id.fullscreen_content_controls); 
     mContentView = findViewById(R.id.fullscreen_content); 

     mContentView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       toggle(); 
      } 
     }); 

     final Activity activity = this; 

     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setIcon(R.mipmap.ic_launcher); 
     getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#007f00"))); 

     Toast.makeText(getApplicationContext(), "Espere o carregamento da página completar.", Toast.LENGTH_LONG).show(); 

     Toast.makeText(getApplicationContext(), "Em seguida, escolha um dos canais disponíveis para começar a transmissão.", Toast.LENGTH_LONG).show(); 

     final String link = this.getIntent().getStringExtra("Link"); 

     TVDroid = (WebView) findViewById(R.id.TVdroid); 
     TVDroid.getSettings().setJavaScriptEnabled(true); 
     TVDroid.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       TVDroid.loadUrl("javascript:(function() { " + 
         "var head = document.getElementsByTagName('header')[0];" 
         + "head.parentNode.removeChild(head);" + 
         "})()"); 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return true; 
      } 
     }); 

     TVDroid.setWebChromeClient(new WebChromeClient() { 

      public void onProgressChanged(WebView view, int progresso) { 
       carregando.setMessage("Carregando página: " + progresso + "%"); 
       activity.setProgress(progresso * 100); 
       if (progresso == 100) 

        carregando.dismiss(); 
      } 
     }); 

     TVDroid.loadUrl(link); 
    } 

回答

0

試試這個 -

創建一個新的FullscreenActivity -

File -> New -> Activity -> FullscreenActivity 

複製您TVDroid活動代碼到FullscreenActivity

+0

我不想全屏活動,只是想將視頻去全屏時雙擊 下面是視頻是如何被顯示在我的應用程序http://imgur.com/a/HFbje –

+0

你試試?功能與您的需要相同,唯一的區別是單個/多個水龍頭,您可以相應地更改 –

+0

我試過你的方法,它比我有更好的,我試圖雙擊視頻去全屏,但它不會工作,相反,我必須旋轉我的手機才能使視頻變大,但它不是全屏顯示:/ 對不起,自從我上一次的Android應用程序以來,我一直很不喜歡哈哈:P –