Commit 064cf704 authored by guest's avatar guest

修改banner问题

parent af98239b
......@@ -48,7 +48,7 @@ class NewMainActivity : BaseActivity<ActivityMainBinding>() {
// ConfigHelper.enterHomeTimes++
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
AdmobBannerUtils.showCollapsibleBannerAd(this,binding.banner)
AdmobBannerUtils.showCollapsibleBannerAd(this,binding.banner,binding.parentlayout)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
EventUtils.event("page_home")
if (!hasNotifications()) {
......
......@@ -2,15 +2,19 @@ package com.test.easy.easycleanerjunk.helps.ads
import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.view.ViewTreeObserver
import android.widget.FrameLayout
import android.widget.LinearLayout
import androidx.core.view.children
import com.google.ads.mediation.admob.AdMobAdapter
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdSize
import com.google.android.gms.ads.AdView
import com.test.easy.easycleanerjunk.BuildConfig
import com.test.easy.easycleanerjunk.helps.ConfigHelper
import com.test.easy.easycleanerjunk.utils.SPUtils
import java.util.UUID
object AdmobBannerUtils {
......@@ -18,26 +22,38 @@ object AdmobBannerUtils {
private var adView: AdView? = null
private var listener: ViewTreeObserver.OnGlobalLayoutListener? = null
fun showCollapsibleBannerAd(context: Context, parent: ViewGroup) {
fun showCollapsibleBannerAd(context: Context, view: ViewGroup,parent: LinearLayout) {
val isShowBanner = SPUtils.getInstance().getString("isShowBanner", "0").toInt()
if (isShowBanner == 0) {
return
}
if (adView != null) {
adView?.destroy()
}
adView = AdView(context)
parent.removeAllViews()
parent.addView(adView)
adView?.tag = "CollapsibleBannerAd"
// parent.removeAllViews()
val list = view.children
list.forEach {
if (it.tag != "zhanweitu") {
view.removeView(it)
}
}
view.addView(adView)
listener = ViewTreeObserver.OnGlobalLayoutListener {
val screenPixelDensity = context.resources.displayMetrics.density
val adWidth = (parent.width / screenPixelDensity).toInt()
val adWidth = (view.width / screenPixelDensity).toInt()
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, adWidth)
adView?.adUnitId = if (BuildConfig.DEBUG) ConfigHelper.bannerAdmobIdTest else ConfigHelper.bannerAdmobId
adView?.setAdSize(adSize)
loadCollapsibleBanner()
parent.viewTreeObserver.removeOnGlobalLayoutListener(listener)
loadCollapsibleBanner(view,context,parent,adSize.height)
view.viewTreeObserver.removeOnGlobalLayoutListener(listener)
}
parent.viewTreeObserver.addOnGlobalLayoutListener(listener)
view.viewTreeObserver.addOnGlobalLayoutListener(listener)
}
private fun loadCollapsibleBanner() {
private fun loadCollapsibleBanner(parent: ViewGroup, context: Context, parentView: LinearLayout, height:Int) {
val extras = Bundle()
extras.putString("collapsible", "bottom")
extras.putString("collapsible_request_id", UUID.randomUUID().toString())
......@@ -45,7 +61,34 @@ object AdmobBannerUtils {
AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
adView?.adListener =
object : AdListener() {
override fun onAdLoaded() {}
override fun onAdImpression() {
super.onAdImpression()
val layout = parentView.layoutParams as FrameLayout.LayoutParams
layout.bottomMargin = context.dpToPx(height)
parentView.layoutParams = layout
}
override fun onAdLoaded() {
}
override fun onAdOpened() {
// LogEx.logDebug(TAG, "onAdOpened")
}
override fun onAdClosed() {
super.onAdClosed()
// LogEx.logDebug(TAG, "onAdClosed")
val removeList = arrayListOf<View>()
parent.children.forEach {
if (it.tag != "CollapsibleBannerAd") {
removeList.add(it)
}
}
removeList.forEach {
parent.removeView(it)
}
}
}
adView?.loadAd(adRequest)
}
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
android:layout_height="match_parent">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/id_vp"
<LinearLayout
android:id="@+id/parentlayout"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/id_ll_nav"
app:layout_constraintTop_toTopOf="parent" />
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:id="@+id/id_view"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EEEEEE"
app:layout_constraintBottom_toTopOf="@+id/id_ll_nav"
app:layout_constraintTop_toBottomOf="@+id/id_vp" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/id_vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_ll_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/banner"
app:layout_constraintTop_toBottomOf="@+id/id_view">
<View
android:id="@+id/id_view"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EEEEEE"
app:layout_constraintBottom_toTopOf="@+id/id_ll_nav"
app:layout_constraintTop_toBottomOf="@+id/id_vp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="20dp"
android:visibility="visible">
android:id="@+id/id_ll_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/banner"
app:layout_constraintTop_toBottomOf="@+id/id_view">
<com.noober.background.view.BLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@drawable/tab_home_s"
app:bl_unSelected_drawable="@drawable/tab_home_n" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="20dp"
android:visibility="visible">
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_home"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:gravity="center"
android:text="Home"
android:textSize="13sp"
app:bl_selected_textColor="@color/theme_color"
app:bl_unSelected_textColor="@color/color_dadde5"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.noober.background.view.BLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@drawable/tab_home_s"
app:bl_unSelected_drawable="@drawable/tab_home_n" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="20dp"
android:visibility="visible">
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_home"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:gravity="center"
android:text="Home"
android:textSize="13sp"
app:bl_selected_textColor="@color/theme_color"
app:bl_unSelected_textColor="@color/color_dadde5"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="20dp"
android:visibility="visible">
<com.noober.background.view.BLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@drawable/tab_tools_s"
app:bl_unSelected_drawable="@drawable/tab_tools_n" />
<com.noober.background.view.BLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@drawable/tab_tools_s"
app:bl_unSelected_drawable="@drawable/tab_tools_n" />
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_tools"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:gravity="center"
android:text="Tools"
android:textSize="13sp"
app:bl_selected_textColor="@color/theme_color"
app:bl_unSelected_textColor="@color/color_c3c3c3"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_tools"
android:layout_width="100dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:gravity="center"
android:text="Tools"
android:textSize="13sp"
app:bl_selected_textColor="@color/theme_color"
app:bl_unSelected_textColor="@color/color_c3c3c3"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
<FrameLayout
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/id_ll_nav"
tools:ignore="UselessLeaf" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
android:layout_gravity="bottom" />
</FrameLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment