admin
2021-03-31 6799566915239b42591024f2a382fc9ad4d9a4de
开屏广告优化
7个文件已修改
9个文件已添加
739 ■■■■ 已修改文件
BuWanVideo/AndroidManifest.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_browser_more.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_browser_more_copy.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_browser_more_open.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_browser_more_refresh.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/activity_splash_ad.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/browser_fengxing_activity.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/fragment_splash_ad.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/ad/SplashAdLoadInfo.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/BaseActivity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashADFragment.java 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashAdActivity.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/ad/SplashAdUtil.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/AndroidManifest.xml
@@ -221,6 +221,14 @@
        <activity
            android:name="com.weikou.beibeivideo.ui.ad.SplashAdActivity"
            android:hardwareAccelerated="true"
            android:label="@string/app_name"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait"></activity>
        <activity
            android:name="com.weikou.beibeivideo.ui.common.LiveBrowserActivity"
            android:label="@string/app_name"
            android:windowSoftInputMode="adjustResize" />
BuWanVideo/res/drawable-xhdpi/icon_browser_more.png
BuWanVideo/res/drawable-xhdpi/icon_browser_more_copy.png
BuWanVideo/res/drawable-xhdpi/icon_browser_more_open.png
BuWanVideo/res/drawable-xhdpi/icon_browser_more_refresh.png
BuWanVideo/res/layout/activity_splash_ad.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/page_content_bg_color"
    android:orientation="vertical">
    <include layout="@layout/view_status_bar" />
    <FrameLayout
        android:id="@+id/fl_splash_ad"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center">
    </FrameLayout>
</LinearLayout>
BuWanVideo/res/layout/browser_fengxing_activity.xml
@@ -46,7 +46,7 @@
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:text=""
                    android:textColor="#DDDDDD"
                    android:textColor="@color/page_title_text_color"
                    android:textSize="15sp"></TextView>
                <TextView
@@ -56,7 +56,7 @@
                    android:layout_marginTop="3dp"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:textColor="#DDDDDD"
                    android:textColor="#999999"
                    android:textSize="8sp"></TextView>
@@ -66,6 +66,7 @@
                android:id="@+id/tv_right"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:drawableRight="@drawable/icon_browser_more"
                android:gravity="center"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
@@ -94,6 +95,61 @@
                android:layout_width="match_parent"
                android:layout_height="match_parent"></WebView>
            <FrameLayout
                android:id="@+id/fl_menu"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#80000000"
                android:visibility="gone">
                <LinearLayout
                    android:id="@+id/ll_menu"
                    android:layout_width="172dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right|top"
                    android:layout_marginRight="4dp"
                    android:orientation="vertical">
                    <TextView
                        android:id="@+id/tv_refresh"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:drawableLeft="@drawable/icon_browser_more_refresh"
                        android:drawablePadding="9dp"
                        android:padding="11dp"
                        android:text="刷新"
                        android:textColor="#ff666666"
                        android:textSize="15sp" />
                    <TextView
                        android:id="@+id/tv_copy"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:drawableLeft="@drawable/icon_browser_more_copy"
                        android:drawablePadding="9dp"
                        android:padding="11dp"
                        android:text="复制链接"
                        android:textColor="#ff666666"
                        android:textSize="15sp" />
                    <TextView
                        android:id="@+id/tv_open"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:drawableLeft="@drawable/icon_browser_more_open"
                        android:drawablePadding="9dp"
                        android:padding="11dp"
                        android:text="用其他浏览器打开"
                        android:textColor="#ff666666"
                        android:textSize="15sp" />
                </LinearLayout>
            </FrameLayout>
        </FrameLayout>
    </LinearLayout>
</LinearLayout>
BuWanVideo/res/layout/fragment_splash_ad.xml
New file
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#010005"
    android:orientation="vertical">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <FrameLayout
            android:id="@+id/fl_ad"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></FrameLayout>
        <LinearLayout
            android:id="@+id/ll_input"
            android:layout_width="wrap_content"
            android:layout_height="34dp"
            android:layout_gravity="top|right"
            android:layout_marginTop="20dp"
            android:layout_marginRight="20dp"
            android:background="@drawable/shape_splash_ad"
            android:gravity="center"
            android:orientation="horizontal"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:visibility="invisible">
            <TextView
                android:id="@+id/ad_input"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:padding="2dp"
                android:text="跳过"
                android:textColor="@color/white"
                android:textSize="14sp"
                android:visibility="visible" />
            <TextView
                android:id="@+id/ad_close_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="2dp"
                android:maxLines="1"
                android:padding="2dp"
                android:text="5"
                android:textColor="@color/white"
                android:textSize="14sp"
                android:visibility="visible" />
        </LinearLayout>
    </FrameLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:padding="15dp">
        <ImageView
            android:layout_width="28dp"
            android:layout_height="28dp"
            android:src="@drawable/ic_launcher"></ImageView>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="27dp"
            android:layout_marginLeft="5dp"
            android:src="@drawable/ic_splash_bottom_small"></ImageView>
    </LinearLayout>
</FrameLayout>
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -35,7 +35,10 @@
import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.UMShareAPI;
import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo;
import com.weikou.beibeivideo.ui.SplashActivity;
import com.weikou.beibeivideo.ui.ad.SplashADFragment;
import com.weikou.beibeivideo.ui.ad.SplashAdActivity;
import com.weikou.beibeivideo.ui.push.PushOpenClickActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.CrashHandler;
@@ -47,6 +50,8 @@
import org.apache.http.Header;
import org.json.JSONException;
import org.json.JSONObject;
import de.greenrobot.event.EventBus;
public class BeibeiVideoApplication extends Application {
@@ -296,6 +301,27 @@
                ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
                if (!cn.getClassName().equalsIgnoreCase(SplashActivity.class.getName())) {
                    Log.i(TAG, "应当展示开屏广告");
                    SplashADFragment.loadAd(getApplicationContext(), null, null, true, new SplashADFragment.AdLoadResultListener() {
                        @Override
                        public void onAdLoad(SplashAdLoadInfo adLoadInfo) {
                            //展示广告
                            startActivity(new Intent(getApplicationContext(), SplashAdActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
                        }
                        @Override
                        public void onNoAd() {
                        }
                        @Override
                        public void onClose() {
                            //广点通广告适用
                            //结束广告
                            //通过eventbus通知页面关闭
                            EventBus.getDefault().post(new SplashAdLoadInfo(null, 0));
                        }
                    });
                }
            }
BuWanVideo/src/com/weikou/beibeivideo/entity/ad/SplashAdLoadInfo.java
New file
@@ -0,0 +1,45 @@
package com.weikou.beibeivideo.entity.ad;
import com.bytedance.sdk.openadsdk.TTSplashAd;
import com.qq.e.ads.splash.SplashAD;
public class SplashAdLoadInfo {
    private SplashAD gdtSplashAd;
    private long expireTime;
    private TTSplashAd csjAd;
    public SplashAdLoadInfo(SplashAD gdtSplashAd, long expireTime) {
        this.gdtSplashAd = gdtSplashAd;
        this.expireTime = expireTime;
    }
    public SplashAdLoadInfo(long expireTime, TTSplashAd csjAd) {
        this.expireTime = expireTime;
        this.csjAd = csjAd;
    }
    public SplashAD getGdtSplashAd() {
        return gdtSplashAd;
    }
    public void setGdtSplashAd(SplashAD gdtSplashAd) {
        this.gdtSplashAd = gdtSplashAd;
    }
    public long getExpireTime() {
        return expireTime;
    }
    public void setExpireTime(long expireTime) {
        this.expireTime = expireTime;
    }
    public TTSplashAd getCsjAd() {
        return csjAd;
    }
    public void setCsjAd(TTSplashAd csjAd) {
        this.csjAd = csjAd;
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/BaseActivity.java
@@ -7,13 +7,8 @@
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import com.umeng.analytics.MobclickAgent;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
BuWanVideo/src/com/weikou/beibeivideo/ui/SplashActivity.java
@@ -37,6 +37,8 @@
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.ad.AdPositionEnum;
import com.weikou.beibeivideo.entity.ad.AdTypeVO;
import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo;
import com.weikou.beibeivideo.ui.ad.SplashADFragment;
import com.weikou.beibeivideo.ui.dialog.UserProtocolDialog;
import com.weikou.beibeivideo.ui.main.MainActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
@@ -411,79 +413,35 @@
     *
     * @param adType
     */
    private SplashADFragment splashADFragment;
    private void loadSplashAd(final AdUtil.AD_TYPE adType, final String pid) {
        SplashAdUtil.loadAD(pid, adType, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() {
        SplashADFragment.loadAd(getApplicationContext(), adType, pid, true, new SplashADFragment.AdLoadResultListener() {
            @Override
            public void close() {
                runOnUiThread(new Runnable() {
            public void onAdLoad(SplashAdLoadInfo adLoadInfo) {
                splashADFragment = SplashADFragment.newInstance();
                splashADFragment.setAdShowListener(new SplashADFragment.AdShowListener() {
                    @Override
                    public void run() {
                    public void onClose() {
                        toMainActivity();
                    }
                });
                getSupportFragmentManager().beginTransaction().replace(R.id.fl_splash_ad, splashADFragment).commitAllowingStateLoss();
            }
            @Override
            public void noAd() {//初次加载未加载出广告
                if (AdUtil.AD_TYPE.csj == adType) {
                    //再次加载广点通广告
                    SplashAdUtil.loadAD(pid, AdUtil.AD_TYPE.gdt, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() {
                        @Override
                        public void close() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    toMainActivity();
                                }
                            });
                        }
            public void onNoAd() {
                toMainActivity();
            }
                        @Override
                        public void noAd() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    toMainActivity();
                                }
                            });
                        }
                    });
                } else if (AdUtil.AD_TYPE.gdt == adType) {
                    //再次加载穿山甲广告
                    //再次加载广点通广告
                    SplashAdUtil.loadAD(pid, AdUtil.AD_TYPE.csj, SplashActivity.this, vg_input, vg_ad, ad_close_time, new SplashAdUtil.SplashAdListener() {
                        @Override
                        public void close() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    toMainActivity();
                                }
                            });
                        }
                        @Override
                        public void noAd() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    toMainActivity();
                                }
                            });
                        }
                    });
                } else {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            toMainActivity();
                        }
                    });
                }
            @Override
            public void onClose() {
                toMainActivity();
            }
        });
    }
    private void myRequetPermission() {
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashADFragment.java
New file
@@ -0,0 +1,252 @@
package com.weikou.beibeivideo.ui.ad;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bytedance.sdk.openadsdk.TTSplashAd;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.ad.AdPositionEnum;
import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo;
import com.weikou.beibeivideo.ui.SplashActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.CSJConstant;
import com.weikou.beibeivideo.util.ad.GDTConstant;
import com.weikou.beibeivideo.util.ad.SplashAdUtil;
import java.util.Timer;
import java.util.TimerTask;
/**
 * 视频播放前贴广告
 */
public class SplashADFragment extends Fragment implements View.OnClickListener {
    private LinearLayout ll_input;
    private TextView ad_close_time;
    private FrameLayout fl_ad;
    private static SplashAdLoadInfo adLoadInfo;
    private AdShowListener mAdShowListener;
    public void setAdShowListener(AdShowListener mAdShowListener) {
        this.mAdShowListener = mAdShowListener;
    }
    /**
     * 加载开屏广告
     *
     * @param adType
     */
    /**
     * 加载开屏广告
     *
     * @param context
     * @param adType1
     * @param pid1
     * @param first
     */
    public static void loadAd(Context context, AdUtil.AD_TYPE adType1, String pid1, boolean first, AdLoadResultListener adLoadResultListener) {
        if (adType1 == null) {
            adType1 = AdUtil.getAdType(context, AdPositionEnum.splash);
            pid1 = AdUtil.getAdPid(context, AdPositionEnum.splash);
        }
        final AdUtil.AD_TYPE adType = adType1;
        final String pid = pid1;
        SplashAdUtil.loadAD(pid, adType, context, null, null, null, new SplashAdUtil.SplashAdListener() {
            @Override
            public void onAdLoad(SplashAdLoadInfo adLoadInfo) {
                SplashADFragment.adLoadInfo = adLoadInfo;
                if (adLoadResultListener != null) {
                    adLoadResultListener.onAdLoad(adLoadInfo);
                }
            }
            @Override
            public void close() {
                if (adLoadResultListener != null)
                    adLoadResultListener.onClose();
            }
            @Override
            public void noAd() {//初次加载未加载出广告
                if (AdUtil.AD_TYPE.csj == adType) {
                    if (first) {
                        loadAd(context, AdUtil.AD_TYPE.gdt, BeibeiConstant.GDT_SPLASH_POSITION_ID, false, adLoadResultListener);
                    } else {
                        if (adLoadResultListener != null)
                            adLoadResultListener.onNoAd();
                    }
                } else if (AdUtil.AD_TYPE.gdt == adType) {
                    //再次加载穿山甲广告
                    if (first) {
                        loadAd(context, AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD, false, adLoadResultListener);
                    } else {
                        if (adLoadResultListener != null)
                            adLoadResultListener.onNoAd();
                    }
                } else {
                    if (adLoadResultListener != null)
                        adLoadResultListener.onNoAd();
                }
            }
        });
    }
    private Timer timer;
    private int leftTime = 5;
    public void showAd() {
        if (isAdLoaded()) {
            //穿山甲广告
            if (adLoadInfo.getCsjAd() != null) {
                TTSplashAd ad = adLoadInfo.getCsjAd();
                View view = ad.getSplashView();
                fl_ad.removeAllViews();
                //把SplashView 添加到ViewGroup中
                fl_ad.addView(view);
                //设置SplashView的交互监听器
                ad.setNotAllowSdkCountdown();
                ad.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
                    @Override
                    public void onAdClicked(View view, int type) {
                    }
                    @Override
                    public void onAdShow(View view, int type) {
                    }
                    @Override
                    public void onAdSkip() {
                    }
                    @Override
                    public void onAdTimeOver() {
                    }
                });
                if (timer == null)
                    timer = new Timer();
                timer.cancel();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        leftTime--;
                        if (leftTime < 0) {
                            timer.cancel();
                            //进入主页
                            mAdShowListener.onClose();
                            return;
                        } else {
                            //倒计时
                            if (ad_close_time != null)
                                ad_close_time.post(new Runnable() {
                                    @Override
                                    public void run() {
                                        if (ad_close_time != null)
                                            ad_close_time.setText(leftTime + "");
                                    }
                                });
                        }
                    }
                }, 1000, 1000);
                ll_input.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        fl_ad.removeAllViews();
                        mAdShowListener.onClose();
                    }
                });
            } else if (adLoadInfo.getGdtSplashAd() != null) {
                adLoadInfo.getGdtSplashAd().showAd(fl_ad);
            }
        }
    }
    /**
     * 广告是否加载
     *
     * @return
     */
    public static boolean isAdLoaded() {
        if (adLoadInfo != null && adLoadInfo.getExpireTime() > System.currentTimeMillis()) {
            return true;
        }
        return false;
    }
    public static SplashADFragment newInstance() {
        Bundle bundle = new Bundle();
        SplashADFragment fragment = new SplashADFragment();
        fragment.setArguments(bundle);
        return fragment;
    }
    private void initView(View root) {
        ll_input = root.findViewById(R.id.ll_input);
        ad_close_time = root.findViewById(R.id.ad_close_time);
    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View root = LayoutInflater.from(getContext()).inflate(R.layout.fragment_splash_ad, null);
        initView(root);
        showAd();
        return root;
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv_skip:
                break;
        }
    }
    public interface AdLoadResultListener {
        public void onAdLoad(SplashAdLoadInfo adLoadInfo);
        public void onNoAd();
        public void onClose();
    }
    public interface AdShowListener {
        public void onClose();
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/SplashAdActivity.java
New file
@@ -0,0 +1,52 @@
package com.weikou.beibeivideo.ui.ad;
import android.os.Bundle;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
import de.greenrobot.event.EventBus;
public class SplashAdActivity extends BaseActivity {
    private SplashADFragment splashADFragment;
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TopStatusSettings.setStatusViewAndDeepColor(this);
        EventBus.getDefault().register(this);
        splashADFragment = SplashADFragment.newInstance();
        splashADFragment.setAdShowListener(new SplashADFragment.AdShowListener() {
            @Override
            public void onClose() {
                finish();
            }
        });
        getSupportFragmentManager().beginTransaction().replace(R.id.fl_splash_ad, splashADFragment).commitAllowingStateLoss();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }
    public void onEventMainThread(SplashAdLoadInfo adLoadInfo) {
        finish();
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/video/VideoPlayerBrowserActivity.java
@@ -39,7 +39,9 @@
import android.widget.TextView;
import android.widget.Toast;
import com.androidquery.AQuery;
import com.lcjian.library.util.ManifestDataUtil;
import com.lcjian.library.util.common.ClipboardUtil;
import com.lcjian.library.util.common.StringUtils;
import com.umeng.analytics.MobclickAgent;
import com.weikou.beibeivideo.R;
@@ -66,11 +68,14 @@
    private Runnable playerJSRunnable = null;
    private AQuery query;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.browser_fengxing_activity);
        query = new AQuery(this);
        TopStatusSettings.setStatusViewAndDeepColor(this);
        tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
@@ -78,6 +83,41 @@
        tv_title = findViewById(R.id.tv_title);
        tv_right = findViewById(R.id.tv_right);
        tv_right.setOnClickListener(this);
        query.id(R.id.tv_more).clicked(this);
        query.id(R.id.fl_menu).clicked(new OnClickListener() {
            @Override
            public void onClick(View v) {
                hiddenMenu();
            }
        });
        query.id(R.id.tv_refresh).clicked(new OnClickListener() {
            @Override
            public void onClick(View v) {
                hiddenMenu();
                webview.reload();
            }
        });
        query.id(R.id.tv_copy).clicked(new OnClickListener() {
            @Override
            public void onClick(View v) {
                hiddenMenu();
                ClipboardUtil.copy(getApplicationContext(), tv_url.getText().toString());
                Toast.makeText(VideoPlayerBrowserActivity.this, "复制成功", Toast.LENGTH_SHORT).show();
            }
        });
        query.id(R.id.tv_open).clicked(new OnClickListener() {
            @Override
            public void onClick(View v) {
                hiddenMenu();
                String url = tv_url.getText().toString();
                Uri uri = Uri.parse(url);
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            }
        });
        fl_webview = findViewById(R.id.fl_webview);
@@ -108,6 +148,7 @@
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i(TAG, "shouldOverrideUrlLoading:" + url);
                tv_url.setText(webview.getUrl());
                return super.shouldOverrideUrlLoading(view, url);
            }
@@ -133,7 +174,7 @@
                    return true;
                } else if (url.contains("/tbopen/") || url.startsWith("tbopen://")) {
                    return true;
                } else if (url.startsWith("tenvideo2://") || url.startsWith("iqiyi://")||url.startsWith("youku://")) {
                } else if (url.startsWith("tenvideo2://") || url.startsWith("iqiyi://") || url.startsWith("youku://")) {
                    try {
                        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        startActivity(intent);
@@ -248,6 +289,14 @@
        String url = getIntent().getStringExtra("url");
        webview.loadUrl(url);
        tv_url.setText(url);
    }
    private void hiddenMenu() {
        query.id(R.id.fl_menu).visibility(View.GONE);
    }
    private void showMenu() {
        query.id(R.id.fl_menu).visibility(View.VISIBLE);
    }
    // 文件下载监听
@@ -413,6 +462,13 @@
                findViewById(R.id.top).setVisibility(View.GONE);
            }
            break;
            case R.id.tv_more:
                if (query.id(R.id.fl_menu).getView().getVisibility() == View.VISIBLE)
                    hiddenMenu();
                else
                    showMenu();
                break;
            default:
                break;
        }
BuWanVideo/src/com/weikou/beibeivideo/util/ad/SplashAdUtil.java
@@ -1,6 +1,7 @@
package com.weikou.beibeivideo.util.ad;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
@@ -14,6 +15,7 @@
import com.qq.e.ads.splash.SplashADListener;
import com.qq.e.comm.util.AdError;
import com.weikou.beibeivideo.entity.ad.AdTypeVO;
import com.weikou.beibeivideo.entity.ad.SplashAdLoadInfo;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.DimenUtils;
import com.weikou.beibeivideo.util.downutil.StringUtils;
@@ -30,7 +32,7 @@
     * @param tv_time
     * @param splashAdListener
     */
    public static void loadAD(String pid, AdUtil.AD_TYPE adType, Activity context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
    public static void loadAD(String pid, AdUtil.AD_TYPE adType, Context context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
        if (adType == null) {
            splashAdListener.close();
            return;
@@ -44,12 +46,14 @@
        }
    }
    private static void loadGDT(String code, Activity context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
    private static SplashAD gdtSplashAD;
    private static void loadGDT(String code, Context context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
        String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL");
        if (StringUtils.isNullOrEmpty(code))
            code = BeibeiConstant.GDT_SPLASH_POSITION_ID;
        new SplashAD(context, skip, code, new SplashADListener() {
        gdtSplashAD = new SplashAD(context, skip, code, new SplashADListener() {
            @Override
            public void onADDismissed() {
                splashAdListener.close();
@@ -93,15 +97,12 @@
            @Override
            public void onADLoaded(long l) {
                System.out.println("");
                skip.post(new Runnable() {
                    @Override
                    public void run() {
                        skip.setVisibility(View.VISIBLE);
                    }
                });
//                gdtSplashAD.preLoad();
//                System.out.println("");
                splashAdListener.onAdLoad(new SplashAdLoadInfo(gdtSplashAD, l));
            }
        }, 0).fetchAndShowIn(vg_ad);
        }, 0);
        gdtSplashAD.fetchAdOnly();
    }
@@ -113,7 +114,7 @@
     * @param vg_ad
     * @param splashAdListener
     */
    private static void loadCSJ(String code, Activity context, final View skip, final ViewGroup vg_ad, final SplashAdListener splashAdListener) {
    private static void loadCSJ(String code, Context context, final View skip, final ViewGroup vg_ad, final SplashAdListener splashAdListener) {
        skip.setVisibility(View.GONE);
        TTAdManager ttAdManager = TTAdManagerHolder.get();
        TTAdNative mTTAdNative = ttAdManager.createAdNative(context.getApplicationContext());
@@ -124,7 +125,6 @@
            width = 720;
        if (height == 0)
            height = 1080;
        String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL");
        if (StringUtils.isNullOrEmpty(code))
            code = CSJConstant.SPLASH_AD;
@@ -151,37 +151,19 @@
                    splashAdListener.noAd();
                    return;
                }
                View view = ad.getSplashView();
                vg_ad.removeAllViews();
                //把SplashView 添加到ViewGroup中
                vg_ad.addView(view);
                //设置SplashView的交互监听器
                ad.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
                    @Override
                    public void onAdClicked(View view, int type) {
                    }
                    @Override
                    public void onAdShow(View view, int type) {
                    }
                splashAdListener.onAdLoad(new SplashAdLoadInfo(gdtSplashAD, System.currentTimeMillis()+1000*60*30L));
                    @Override
                    public void onAdSkip() {
                        splashAdListener.close();
                    }
                    @Override
                    public void onAdTimeOver() {
                        splashAdListener.close();
                    }
                });
            }
        });
        },4000);
    }
    public interface SplashAdListener {
        public void onAdLoad(SplashAdLoadInfo adLoadInfo);
        public void close();
        public void noAd();