WebView에 표시된 Android Wordpress 클라이언트 앱에서 Youtube 및 Facebook 비디오를 전체 화면으로 만드는 방법

CoderNik

저는 하나의 워드 프레스 클라이언트 앱을 만들었는데, 여기서 AppBarLayout 상단과이 Post 뷰 와 같은 콘텐츠 아래에 비디오 (웹뷰 로딩 임베드 코드)를 표시하고 있습니다.

전체 화면으로 전환하는 옵션을 추가하려면 어떻게합니까?

AgentLog

먼저 onShowCustomView 및 onHideCustomView 메서드를 구현하는 사용자 지정 WebChromeClient 클래스를 만들어야합니다.

private class MyWebChromeClient extends WebChromeClient {
FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
        FrameLayout.LayoutParams.MATCH_PARENT);

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
    // if a view already exists then immediately terminate the new one
    if (mCustomView != null) {
        callback.onCustomViewHidden();
        return;
    }
    mContentView = (RelativeLayout) findViewById(R.id.activity_main);
    mContentView.setVisibility(View.GONE);
    mCustomViewContainer = new FrameLayout(MainActivity.this);
    mCustomViewContainer.setLayoutParams(LayoutParameters);
    mCustomViewContainer.setBackgroundResource(android.R.color.black);
    view.setLayoutParams(LayoutParameters);
    mCustomViewContainer.addView(view);
    mCustomView = view;
    mCustomViewCallback = callback;
    mCustomViewContainer.setVisibility(View.VISIBLE);
    setContentView(mCustomViewContainer);
}

@Override
public void onHideCustomView() {
    if (mCustomView == null) {
        return;
    } else {
        // Hide the custom view.  
        mCustomView.setVisibility(View.GONE);
        // Remove the custom view from its container.  
        mCustomViewContainer.removeView(mCustomView);
        mCustomView = null;
        mCustomViewContainer.setVisibility(View.GONE);
        mCustomViewCallback.onCustomViewHidden();
        // Show the content view.  
        mContentView.setVisibility(View.VISIBLE);
        setContentView(mContentView);
    }
}
}

기본적으로 여기에서 일어나는 일은 전체 화면 버튼을 누를 때 비디오를 보관하고 기본보기를 숨기는 새보기를 만드는 것입니다. 그런 다음 전체 화면이 닫히면 반대로 새보기를 제거하고 원래보기를 표시합니다.

또한 이러한 모든 속성을 활동 클래스에 추가해야합니다.

private MyWebChromeClient mWebChromeClient = null;
private View mCustomView;
private RelativeLayout mContentView;
private FrameLayout mCustomViewContainer;
private WebChromeClient.CustomViewCallback mCustomViewCallback;

뒤로 버튼을 누를 때 전체 화면 비디오를 닫고 싶을 것입니다.

@Override
public void onBackPressed() {
if (mCustomViewContainer != null)
    mWebChromeClient.onHideCustomView();
else if (myWebView.canGoBack())
    myWebView.goBack();
else
    super.onBackPressed();
}

그런 다음 웹뷰를 만들 때 새 클래스를 사용하면됩니다.

myWebView = (WebView) findViewById(R.id.webView1);
mWebChromeClient = new WMWebChromeClient();
myWebView.setWebChromeClient(mWebChromeClient);

이것이 당신에게 효과가 있기를 바랍니다. :) 당신이 이것을 좋아한다면 내 대답을 받아들이십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관