您的位置:首页 > 移动开发

Android使用WebView全屏播放网页视频

2016-08-15 09:25 931 查看
一、在Androidmanifest.xml中对Activity进行设置

android:hardwareAccelerated="true"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:screenOrientation="portrait"


二、设置权限      

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


三、布局文件如下

<?xml version="1.0" encoding="utf-8" ?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#888888">

<FrameLayout
android:id="@+id/fl_video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#008800"
android:orientation="horizontal">
<ImageView
android:layout_width="25dp"
android:layout_height="20dp"
android:id="@+id/image"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:src="@mipmap/back_transparent"/>

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="marquee"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="WebView播放网络视频示例" />
</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
</RelativeLayout>
</LinearLayout>
</FrameLayout>


四、Activity中的实现代码

package com.example.office.testjs;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
* Created by office on 2016/8/1.
*/
public class SecondActivity extends Activity {
private WebView wv;
private View customView = null;
private LinearLayout ll_content;
private FrameLayout fl_video;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
wv = (WebView)findViewById(R.id.wv);
ll_content = (LinearLayout)findViewById(R.id.ll_content);
fl_video = (FrameLayout)findViewById(R.id.fl_video);
imageView= (ImageView) findViewById(R.id.image);

WebSettings webSettings=wv.getSettings();
webSettings.setJavaScriptEnabled(true);
//        webSettings.setBuiltInZoomControls(true);
//        webSettings.setDisplayZoomControls(false);
//        webSettings.setSupportZoom(true);
//        webSettings.setDomStorageEnabled(true);
//        webSettings.setDatabaseEnabled(true);
wv.setWebChromeClient(new MyWebChromeClient());
wv.setWebViewClient(new WebViewClient());

imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
wv.loadUrl("http://www.iqiyi.com/");
}

@Override
public void onBackPressed() {

if (wv.canGoBack()){
wv.goBack();
}else{
super.onBackPressed();
}
}

class MyWebChromeClient extends WebChromeClient {
private CustomViewCallback customViewCallback;

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
//            super.onShowCustomView(view, callback);
//            if (customView != null) {
//                callback.onCustomViewHidden();
//                return;
//            }
customView = view;
customViewCallback = callback;
ll_content.setVisibility(View.GONE);
fl_video.addView(customView);
fl_video.setVisibility(View.VISIBLE);
fl_video.bringToFront();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏
}
@Override
public void onHideCustomView() {
ll_content.setVisibility(View.VISIBLE);
if (customView == null) {
return;
}
fl_video.removeView(customView);
customView = null;
fl_video.setVisibility(View.GONE);
try {
customViewCallback.onCustomViewHidden();
} catch (Exception e) {
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 设置竖屏
final WindowManager.LayoutParams attrs =getWindow().getAttributes();// 取消全屏
attrs.flags &= (WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: