久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

Android中如何使用WebView實現(xiàn)全屏切換播放網(wǎng)頁視頻功能

這篇文章主要介紹Android中如何使用WebView實現(xiàn)全屏切換播放網(wǎng)頁視頻功能,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司十多年經(jīng)驗成就非凡,專業(yè)從事網(wǎng)站制作、成都做網(wǎng)站,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文營銷廣告投放等。十多年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!

首先寫布局文件activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:id="@+id/container"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="vertical">  <FrameLayout    android:id="@+id/video_view"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:visibility="gone"    ></FrameLayout>  <Button    android:id="@+id/video_landport"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="全屏不顯示該按扭,點擊切換橫屏"    android:gravity="center"    />  <WebView    android:id="@+id/video_webview"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    />  </LinearLayout>

原理:實現(xiàn)全屏的時候把webview里的視頻放到一個View(布局里的video_view控件)里面,然后把webview隱藏掉!這樣就實現(xiàn)了全屏播放的!

現(xiàn)在具體來看看怎么實現(xiàn)的:

先放代碼MainActivity.java:

public class MainActivity extends Activity {   private FrameLayout videoview;// 全屏?xí)r視頻加載view  private Button videolandport;  private WebView videowebview;  private Boolean islandport = true;//true表示此時是豎屏,false表示此時橫屏。  private View xCustomView;  private xWebChromeClient xwebchromeclient;  private String url = "http://look.appjx.cn/mobile_api.php?mod=news&id=12604";  private WebChromeClient.CustomViewCallback   xCustomViewCallback;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉應(yīng)用標(biāo)題    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,        WindowManager.LayoutParams.FLAG_FULLSCREEN);    setContentView(R.layout.activity_main);    initwidget();    initListener();    videowebview.loadUrl(url);  }  private void initListener() {    // TODO Auto-generated method stub    videolandport.setOnClickListener(new Listener());  }  private void initwidget() {    // TODO Auto-generated method stub    videoview = (FrameLayout) findViewById(R.id.video_view);    videolandport = (Button) findViewById(R.id.video_landport);    videowebview = (WebView) findViewById(R.id.video_webview);    WebSettings ws = videowebview.getSettings();    /**     * setAllowFileAccess 啟用或禁止WebView訪問文件數(shù)據(jù) setBlockNetworkImage 是否顯示網(wǎng)絡(luò)圖像     * setBuiltInZoomControls 設(shè)置是否支持縮放 setCacheMode 設(shè)置緩沖的模式     * setDefaultFontSize 設(shè)置默認(rèn)的字體大小 setDefaultTextEncodingName 設(shè)置在解碼時使用的默認(rèn)編碼     * setFixedFontFamily 設(shè)置固定使用的字體 setJavaSciptEnabled 設(shè)置是否支持Javascript     * setLayoutAlgorithm 設(shè)置布局方式 setLightTouchEnabled 設(shè)置用鼠標(biāo)激活被選項     * setSupportZoom 設(shè)置是否支持變焦     * */    ws.setBuiltInZoomControls(true);// 隱藏縮放按鈕    ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// 排版適應(yīng)屏幕    ws.setUseWideViewPort(true);// 可任意比例縮放    ws.setLoadWithOverviewMode(true);// setUseWideViewPort方法設(shè)置webview推薦使用的窗口。setLoadWithOverviewMode方法是設(shè)置webview加載的頁面的模式。    ws.setSavePassword(true);    ws.setSaveFormData(true);// 保存表單數(shù)據(jù)    ws.setJavaScriptEnabled(true);    ws.setGeolocationEnabled(true);// 啟用地理定位    ws.setGeolocationDatabasePath("/data/data/org.itri.html5webview/databases/");// 設(shè)置定位的數(shù)據(jù)庫路徑    ws.setDomStorageEnabled(true);    xwebchromeclient = new xWebChromeClient();    videowebview.setWebChromeClient(xwebchromeclient);    videowebview.setWebViewClient(new xWebViewClientent());  }  class Listener implements OnClickListener {    @Override    public void onClick(View v) {      // TODO Auto-generated method stub      switch (v.getId()) {      case R.id.video_landport:        if (islandport) {          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);          videolandport.setText("全屏不顯示該按扭,點擊切換橫屏");        }else {          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);          videolandport.setText("全屏不顯示該按扭,點擊切換豎屏");        }        break;      default:        break;      }    }  }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {      if (keyCode == KeyEvent.KEYCODE_BACK) {        if (inCustomView()) {          hideCustomView();          return true;        }else {        videowebview.loadUrl("about:blank");//          mTestWebView.loadData("", "text/html; charset=UTF-8", null);        MainActivity.this.finish();          Log.i("testwebview", "===>>>2");      }      }      return true;    }    /**    * 判斷是否是全屏    * @return    */    public boolean inCustomView() {       return (xCustomView != null);     }     /**     * 全屏?xí)r按返加鍵執(zhí)行退出全屏方法     */     public void hideCustomView() {       xwebchromeclient.onHideCustomView();     }  /**   * 處理Javascript的對話框、網(wǎng)站圖標(biāo)、網(wǎng)站標(biāo)題以及網(wǎng)頁加載進度等   * @author   */  public class xWebChromeClient extends WebChromeClient {    private Bitmap xdefaltvideo;    private View xprogressvideo;    @Override    //播放網(wǎng)絡(luò)視頻時全屏?xí)徽{(diào)用的方法    public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback)    {      if (islandport) {      }      else{//        ii = "1";//        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);      }      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);      videowebview.setVisibility(View.GONE);      //如果一個視圖已經(jīng)存在,那么立刻終止并新建一個      if (xCustomView != null) {        callback.onCustomViewHidden();        return;      }            videoview.addView(view);      xCustomView = view;      xCustomViewCallback = callback;      videoview.setVisibility(View.VISIBLE);    }    @Override    //視頻播放退出全屏?xí)徽{(diào)用的    public void onHideCustomView() {      if (xCustomView == null)//不是全屏播放狀態(tài)        return;                 // Hide the custom view.      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);      xCustomView.setVisibility(View.GONE);      // Remove the custom view from its container.      videoview.removeView(xCustomView);      xCustomView = null;      videoview.setVisibility(View.GONE);      xCustomViewCallback.onCustomViewHidden();      videowebview.setVisibility(View.VISIBLE);      //Log.i(LOGTAG, "set it to webVew");    }    //視頻加載添加默認(rèn)圖標(biāo)    @Override    public Bitmap getDefaultVideoPoster() {      //Log.i(LOGTAG, "here in on getDefaultVideoPoster");       if (xdefaltvideo == null) {        xdefaltvideo = BitmapFactory.decodeResource(            getResources(), R.drawable.videoicon);      }      return xdefaltvideo;    }    //視頻加載時進程loading    @Override    public View getVideoLoadingProgressView() {      //Log.i(LOGTAG, "here in on getVideoLoadingPregressView");      if (xprogressvideo == null) {        LayoutInflater inflater = LayoutInflater.from(MainActivity.this);        xprogressvideo = inflater.inflate(R.layout.video_loading_progress, null);      }      return xprogressvideo;    }    //網(wǎng)頁標(biāo)題     @Override     public void onReceivedTitle(WebView view, String title) {      (MainActivity.this).setTitle(title);     }//     @Override//    //當(dāng)WebView進度改變時更新窗口進度//     public void onProgressChanged(WebView view, int newProgress) {//       (MainActivity.this).getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress*100);//     }     }  /**   * 處理各種通知、請求等事件   * @author   */  public class xWebViewClientent extends WebViewClient {     @Override      public boolean shouldOverrideUrlLoading(WebView view, String url) {        Log.i("webviewtest", "shouldOverrideUrlLoading: "+url);        return false;      }  }  /**   * 當(dāng)橫豎屏切換時會調(diào)用該方法   * @author   */  @Override  public void onConfigurationChanged(Configuration newConfig) {    Log.i("testwebview", "=====<<< onConfigurationChanged >>>=====");     super.onConfigurationChanged(newConfig);     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){       Log.i("webview", "  現(xiàn)在是橫屏1");       islandport = false;      }else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){       Log.i("webview", "  現(xiàn)在是豎屏1");       islandport = true;      }  }}

最后說下AndroidManifest.xml設(shè)置;訪問網(wǎng)絡(luò)權(quán)限加上這句

<uses-permission android:name="android.permission.INTERNET"/>

當(dāng)切換橫豎屏?xí)r為了不重新調(diào)用onCreate等方法,要加個這句:

android:configChanges="orientation|keyboardHidden|screenSize"

以上是“Android中如何使用WebView實現(xiàn)全屏切換播放網(wǎng)頁視頻功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:Android中如何使用WebView實現(xiàn)全屏切換播放網(wǎng)頁視頻功能
網(wǎng)站網(wǎng)址:http://sd-ha.com/article16/gpsedg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、面包屑導(dǎo)航網(wǎng)站設(shè)計公司、企業(yè)建站、域名注冊品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司