提交修改

This commit is contained in:
changyunjia
2026-06-09 15:16:52 +08:00
co-authored by changyunjia
parent d4442fc21f
commit 3ac4fe0cd0
330 changed files with 48115 additions and 36763 deletions
+3 -3
View File
@@ -1,3 +1,3 @@
{
"name": "BigoAds"
}
{
"name": "BigoAds"
}
View File
+106 -106
View File
@@ -1,106 +1,106 @@
package sg.bigo.ads;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import sg.bigo.ads.api.AdOptionsView;
import sg.bigo.ads.api.AdTag;
import sg.bigo.ads.api.MediaView;
import sg.bigo.ads.api.NativeAd;
public class AdHelper {
public static void postToAndroidMainThread(Runnable runnable) {
new Handler(Looper.getMainLooper()).post(runnable);
}
public static void addAdView(Activity activity, View adView, int position) {
if (adView == null) return;
ViewGroup contentView = activity.findViewById(android.R.id.content);
String tag = "ad_container";
ViewGroup adContainer = contentView.findViewWithTag(tag);
if (adContainer == null) {
adContainer = new FrameLayout(activity);
adContainer.setTag(tag);
}
contentView.removeView(adContainer);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, position);
contentView.addView(adContainer, layoutParams);
adContainer.removeAllViews();
adContainer.addView(adView);
}
public static void removeAdView(Activity activity)
{
ViewGroup contentView = activity.findViewById(android.R.id.content);
String tag = "ad_container";
ViewGroup adContainer = contentView.findViewWithTag(tag);
if (adContainer == null) return;
adContainer.removeAllViews();
}
public static int getLayoutIdByResName(Activity activity, String resName) {
return activity.getResources().getIdentifier(resName, "layout", activity.getPackageName());
}
public static int getDrawableIdByResName(Activity activity, String resName) {
return activity.getResources().getIdentifier(resName, "drawable", activity.getPackageName());
}
public static View renderNativeAdView(Activity activity, NativeAd nativeAd, String layoutResName) {
int layoutId = getLayoutIdByResName(activity, layoutResName);
if (layoutId <= 0) {
Log.w("BigoAds-Unity", "Invalid res name: " + layoutResName);
return null;
}
View view = LayoutInflater.from(activity).inflate(layoutId, null, false);
if (!(view instanceof ViewGroup)) {
return view;
}
ViewGroup nativeView = (ViewGroup) view;
TextView titleView = findViewByIdName(nativeView, "native_title");
TextView descriptionView = findViewByIdName(nativeView, "native_description");
TextView warningView = findViewByIdName(nativeView, "native_warning");
Button ctaButton = findViewByIdName(nativeView, "native_cta");
MediaView mediaView = findViewByIdName(nativeView, "native_media_view");
ImageView iconView = findViewByIdName(nativeView, "native_icon_view");
AdOptionsView optionsView = findViewByIdName(nativeView, "native_option_view");
titleView.setTag(AdTag.TITLE);
descriptionView.setTag(AdTag.DESCRIPTION);
warningView.setTag(AdTag.WARNING);
ctaButton.setTag(AdTag.CALL_TO_ACTION);
titleView.setText(nativeAd.getTitle());
descriptionView.setText(nativeAd.getDescription());
warningView.setText(nativeAd.getWarning());
ctaButton.setText(nativeAd.getCallToAction());
List<View> clickableViews = new ArrayList<>();
clickableViews.add(titleView);
clickableViews.add(descriptionView);
clickableViews.add(ctaButton);
nativeAd.registerViewForInteraction(nativeView, mediaView, iconView, optionsView, clickableViews);
return nativeView;
}
private static <T extends View> T findViewByIdName(ViewGroup parent, String name) {
Context context = parent.getContext();
int id = context.getResources().getIdentifier(name, "id", context.getPackageName());
return parent.findViewById(id);
}
}
package sg.bigo.ads;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import sg.bigo.ads.api.AdOptionsView;
import sg.bigo.ads.api.AdTag;
import sg.bigo.ads.api.MediaView;
import sg.bigo.ads.api.NativeAd;
public class AdHelper {
public static void postToAndroidMainThread(Runnable runnable) {
new Handler(Looper.getMainLooper()).post(runnable);
}
public static void addAdView(Activity activity, View adView, int position) {
if (adView == null) return;
ViewGroup contentView = activity.findViewById(android.R.id.content);
String tag = "ad_container";
ViewGroup adContainer = contentView.findViewWithTag(tag);
if (adContainer == null) {
adContainer = new FrameLayout(activity);
adContainer.setTag(tag);
}
contentView.removeView(adContainer);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, position);
contentView.addView(adContainer, layoutParams);
adContainer.removeAllViews();
adContainer.addView(adView);
}
public static void removeAdView(Activity activity)
{
ViewGroup contentView = activity.findViewById(android.R.id.content);
String tag = "ad_container";
ViewGroup adContainer = contentView.findViewWithTag(tag);
if (adContainer == null) return;
adContainer.removeAllViews();
}
public static int getLayoutIdByResName(Activity activity, String resName) {
return activity.getResources().getIdentifier(resName, "layout", activity.getPackageName());
}
public static int getDrawableIdByResName(Activity activity, String resName) {
return activity.getResources().getIdentifier(resName, "drawable", activity.getPackageName());
}
public static View renderNativeAdView(Activity activity, NativeAd nativeAd, String layoutResName) {
int layoutId = getLayoutIdByResName(activity, layoutResName);
if (layoutId <= 0) {
Log.w("BigoAds-Unity", "Invalid res name: " + layoutResName);
return null;
}
View view = LayoutInflater.from(activity).inflate(layoutId, null, false);
if (!(view instanceof ViewGroup)) {
return view;
}
ViewGroup nativeView = (ViewGroup) view;
TextView titleView = findViewByIdName(nativeView, "native_title");
TextView descriptionView = findViewByIdName(nativeView, "native_description");
TextView warningView = findViewByIdName(nativeView, "native_warning");
Button ctaButton = findViewByIdName(nativeView, "native_cta");
MediaView mediaView = findViewByIdName(nativeView, "native_media_view");
ImageView iconView = findViewByIdName(nativeView, "native_icon_view");
AdOptionsView optionsView = findViewByIdName(nativeView, "native_option_view");
titleView.setTag(AdTag.TITLE);
descriptionView.setTag(AdTag.DESCRIPTION);
warningView.setTag(AdTag.WARNING);
ctaButton.setTag(AdTag.CALL_TO_ACTION);
titleView.setText(nativeAd.getTitle());
descriptionView.setText(nativeAd.getDescription());
warningView.setText(nativeAd.getWarning());
ctaButton.setText(nativeAd.getCallToAction());
List<View> clickableViews = new ArrayList<>();
clickableViews.add(titleView);
clickableViews.add(descriptionView);
clickableViews.add(ctaButton);
nativeAd.registerViewForInteraction(nativeView, mediaView, iconView, optionsView, clickableViews);
return nativeView;
}
private static <T extends View> T findViewByIdName(ViewGroup parent, String name) {
Context context = parent.getContext();
int id = context.getResources().getIdentifier(name, "id", context.getPackageName());
return parent.findViewById(id);
}
}
+13 -13
View File
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<iosPods>
<iosPod name="BigoADS" version="5.1.2"/>
</iosPods>
<androidPackages>
<androidPackage spec="com.bigossp:bigo-ads:5.3.0">
<repositories>
<repository>https://repo1.maven.org/maven2/</repository>
</repositories>
</androidPackage>
</androidPackages>
</dependencies>
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<iosPods>
<iosPod name="BigoADS" version="5.1.2"/>
</iosPods>
<androidPackages>
<androidPackage spec="com.bigossp:bigo-ads:5.3.0">
<repositories>
<repository>https://repo1.maven.org/maven2/</repository>
</repositories>
</androidPackage>
</androidPackages>
</dependencies>
View File
+104 -104
View File
@@ -1,104 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<sg.bigo.ads.api.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/native_ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="8dp"
tools:ignore="ContentDescription">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/native_ad_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:text="Ad" />
<sg.bigo.ads.api.MediaView
android:id="@+id/native_media_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/native_ad_label"
android:layout_centerVertical="true"
android:layout_marginTop="4dp" />
<ImageView
android:id="@+id/native_icon_view"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_below="@id/native_media_view"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/native_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/native_icon_view"
android:layout_marginStart="8dp"
android:layout_marginTop="2dp"
android:layout_toEndOf="@id/native_icon_view"
android:ellipsize="end"
android:fontFamily="sans-serif-medium"
android:maxLines="1"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="14sp" />
<TextView
android:id="@+id/native_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/native_title"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:layout_toEndOf="@id/native_icon_view"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />
<Button
android:id="@+id/native_cta"
android:layout_width="240dp"
android:layout_height="44dp"
android:layout_below="@id/native_icon_view"
android:layout_marginTop="8dp"
android:backgroundTint="@android:color/holo_blue_light"
android:ellipsize="end"
android:maxLines="2"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="16sp"
tools:ignore="ObsoleteLayoutParam" />
<sg.bigo.ads.api.AdOptionsView
android:id="@+id/native_option_view"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignTop="@id/native_icon_view"
android:layout_alignParentEnd="true"
android:layout_marginEnd="8dp" />
<TextView
android:id="@+id/native_warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/native_ad_label"
android:layout_alignBottom="@id/native_ad_label"
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/native_ad_label"
android:ellipsize="end"
android:maxLines="2"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="10sp" />
</RelativeLayout>
</sg.bigo.ads.api.NativeAdView>
<?xml version="1.0" encoding="utf-8"?>
<sg.bigo.ads.api.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/native_ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="8dp"
tools:ignore="ContentDescription">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/native_ad_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:text="Ad" />
<sg.bigo.ads.api.MediaView
android:id="@+id/native_media_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/native_ad_label"
android:layout_centerVertical="true"
android:layout_marginTop="4dp" />
<ImageView
android:id="@+id/native_icon_view"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_below="@id/native_media_view"
android:layout_marginTop="8dp" />
<TextView
android:id="@+id/native_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/native_icon_view"
android:layout_marginStart="8dp"
android:layout_marginTop="2dp"
android:layout_toEndOf="@id/native_icon_view"
android:ellipsize="end"
android:fontFamily="sans-serif-medium"
android:maxLines="1"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="14sp" />
<TextView
android:id="@+id/native_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/native_title"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:layout_toEndOf="@id/native_icon_view"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="12sp" />
<Button
android:id="@+id/native_cta"
android:layout_width="240dp"
android:layout_height="44dp"
android:layout_below="@id/native_icon_view"
android:layout_marginTop="8dp"
android:backgroundTint="@android:color/holo_blue_light"
android:ellipsize="end"
android:maxLines="2"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="16sp"
tools:ignore="ObsoleteLayoutParam" />
<sg.bigo.ads.api.AdOptionsView
android:id="@+id/native_option_view"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignTop="@id/native_icon_view"
android:layout_alignParentEnd="true"
android:layout_marginEnd="8dp" />
<TextView
android:id="@+id/native_warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/native_ad_label"
android:layout_alignBottom="@id/native_ad_label"
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/native_ad_label"
android:ellipsize="end"
android:maxLines="2"
android:text=""
android:textColor="@android:color/darker_gray"
android:textSize="10sp" />
</RelativeLayout>
</sg.bigo.ads.api.NativeAdView>