Commit 30195c7f authored by wanglei's avatar wanglei

[pangle]原生广告

parent 3cb03996
package com.base.appzxhy.business.ads
//import com.applovin.mediation.MaxAd
//import com.applovin.mediation.nativeAds.MaxNativeAdLoader
//import com.applovin.mediation.nativeAds.MaxNativeAdView
//import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
//import com.google.android.gms.ads.nativead.NativeAd
//import com.google.android.gms.ads.nativead.NativeAdView
import android.annotation.SuppressLint
import android.content.Context
import android.text.TextUtils
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.Button
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.annotation.LayoutRes
//import com.applovin.mediation.MaxAd
//import com.applovin.mediation.nativeAds.MaxNativeAdLoader
//import com.applovin.mediation.nativeAds.MaxNativeAdView
//import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
import com.base.appzxhy.R
//import com.google.android.gms.ads.nativead.NativeAd
//import com.google.android.gms.ads.nativead.NativeAdView
import androidx.core.content.withStyledAttributes
import com.base.appzxhy.R
import com.bumptech.glide.Glide
import com.bytedance.sdk.openadsdk.api.nativeAd.PAGNativeAdData
@SuppressLint("ViewConstructor")
class NativeParentView(context: Context, attrs: AttributeSet? = null) :
......@@ -120,4 +125,52 @@ class NativeParentView(context: Context, attrs: AttributeSet? = null) :
//
// addView(adView, params)
// }
fun setPangleNativeAd(
adData: PAGNativeAdData,
@LayoutRes resource: Int? = null
) {
val layout = resource ?: R.layout.layout_pangle_native_custom
val convertView = LayoutInflater.from(context).inflate(layout, null, false)
val mTitle = convertView.findViewById<View?>(R.id.tv_listitem_ad_title) as TextView?
mTitle?.text = adData.title
val mDescription = convertView.findViewById<View?>(R.id.tv_listitem_ad_desc) as TextView?
mDescription?.text = adData.description
val videoView = convertView.findViewById<View?>(R.id.iv_listitem_video) as FrameLayout?
val video: View? = adData.mediaView
video?.let {
videoView?.removeAllViews()
videoView?.addView(it)
}
val mIcon = convertView.findViewById<View?>(R.id.iv_listitem_icon) as ImageView?
mIcon?.let {
Glide.with(context).load(adData.icon.imageUrl).into(it)
}
val mDislike = convertView.findViewById<View?>(R.id.iv_listitem_dislike) as ImageView?
mDislike?.setOnClickListener {
this.visibility = GONE
}
val mCreativeButton = convertView.findViewById<View?>(R.id.tt_creative_btn) as Button?
mCreativeButton?.text = adData.buttonText
val imageView = adData.adLogoView as ImageView?
val mAdLogoView = convertView.findViewById<View?>(R.id.tt_ad_logo) as RelativeLayout?
val lp = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
mAdLogoView?.addView(imageView, lp)
val params = LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT
)
params.gravity = adGravity
addView(convertView, params)
}
}
package com.base.appzxhy.business.pangle
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
......@@ -11,6 +12,7 @@ import com.base.appzxhy.R
import com.base.appzxhy.business.ads.AdsMgr
import com.base.appzxhy.business.ads.AdsShowCallBack
import com.base.appzxhy.databinding.ActivityPangleBinding
import com.base.appzxhy.ui.main.MainActivity
class PangleActivity : AppCompatActivity() {
......@@ -33,7 +35,7 @@ class PangleActivity : AppCompatActivity() {
binding.showOpen.setOnClickListener {
AdsMgr.showOpen(this, showCallBack = object : AdsShowCallBack() {
override fun next() {
this@PangleActivity.startActivity(Intent(this@PangleActivity, MainActivity::class.java))
}
})
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="HardcodedText">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10">
<ImageView
android:id="@+id/iv_listitem_icon"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical|start"
android:layout_marginEnd="10dp"
android:src="@drawable/tt_ad_logo"
tools:ignore="ContentDescription,ImageContrastCheck" />
<ImageView
android:id="@+id/iv_listitem_dislike"
android:layout_width="20dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|end"
android:layout_marginStart="10dp"
android:clickable="true"
android:focusable="true"
android:src="@drawable/dislike_icon"
android:visibility="visible"
tools:ignore="ContentDescription,ImageContrastCheck,SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</FrameLayout>
<TextView
android:id="@+id/tv_listitem_ad_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="3dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="3dp"
android:ellipsize="end"
android:lineSpacingMultiplier="1"
android:maxLines="2"
android:singleLine="false"
android:text="pangle"
android:textColor="@android:color/black"
android:textSize="18sp" />
<FrameLayout
android:id="@+id/iv_listitem_video"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_120"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:layout_marginHorizontal="@dimen/dp_10"
android:minHeight="@dimen/dp_45"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/tt_ad_logo"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:minHeight="@dimen/dp_18" />
<TextView
android:id="@+id/tv_listitem_ad_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:layout_weight="1"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLength="14"
android:singleLine="true"
android:text="this is title....."
android:textSize="18sp" />
<Button
android:id="@+id/tt_creative_btn"
android:layout_width="90dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="3dp"
android:layout_marginEnd="8dp"
android:background="@drawable/bg_btn_ad"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
android:padding="3dp"
android:text="Download"
android:textAllCaps="false"
android:textColor="#B22222"
android:textSize="14sp"
tools:ignore="TextContrastCheck,TouchTargetSizeCheck" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
......@@ -71,4 +71,5 @@
<dimen name="dp__25">-25dp</dimen>
<dimen name="dp_56">56dp</dimen>
<dimen name="dp_52">52dp</dimen>
<dimen name="dp_120">120dp</dimen>
</resources>
\ 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