广点通sdk接入 _原生广告

2023-11-22 11:10

本文主要是介绍广点通sdk接入 _原生广告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

广点通sdk接入 _原生广告

1:导入相关架包,写入相关权限和配置
android-query-full.0.26.7.jar
GDTUnionSDK.4.8.513.jar
Volley.jar//本案例通过此框架设置图片<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><service
android:name="com.qq.e.comm.DownloadService"
android:exported="false" /><activityandroid:name="com.qq.e.ads.ADActivity"            android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />2:include自定义广告布局nativelistitem.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:descendantFocusability="blocksDescendants" ><!-- 广告Logo --><ImageViewandroid:id="@+id/img_logo"android:layout_width="64dp"android:layout_height="64dp"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_margin="10dp" /><!-- 广告标题 --><TextViewandroid:id="@+id/text_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@id/img_logo"android:layout_margin="5dp"android:layout_toRightOf="@id/img_logo"android:textColor="@android:color/black" /><!-- 内容 --><TextViewandroid:id="@+id/text_desc"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/text_name"android:layout_marginLeft="5dp"android:layout_marginRight="15dp"android:layout_toRightOf="@id/img_logo"android:ellipsize="end"android:singleLine="true"android:textColor="#A0000000" /><!-- 文本状态 --><TextViewandroid:id="@+id/text_status"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/text_desc"android:layout_marginLeft="5dp"android:layout_marginRight="5dp"android:layout_toRightOf="@id/img_logo"android:textColor="#A0000000" /><!-- 内容图片 --><ImageViewandroid:id="@+id/img_poster"android:layout_width="match_parent"android:layout_height="180dp"android:layout_below="@id/text_status"android:layout_margin="10dp"android:minHeight="180dp"android:scaleType="fitXY" /><!-- 分割线 --><Viewandroid:id="@+id/divider"android:layout_width="match_parent"android:layout_height="1dp"android:layout_below="@id/img_poster"android:layout_margin="10dp"android:background="#30000000" /><!-- 下载按钮 --><Buttonandroid:id="@+id/btn_download"android:layout_width="match_parent"android:layout_height="40dp"android:layout_below="@id/divider"android:layout_margin="10dp"android:background="#009688"android:textColor="@android:color/white" /></RelativeLayout>3:主界面布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.qq.e.NewNativeAdActivity" ><!-- 自定义广告布局类 --><includeandroid:id="@+id/nativeADContainer"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerInParent="true"layout="@layout/nativelistitem" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/nativeADContainer"android:layout_marginTop="10dp"android:orientation="horizontal"android:weightSum="2" ><Buttonandroid:id="@+id/loadNative"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="加载广告" /><Buttonandroid:id="@+id/showNative"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="展示广告" /></LinearLayout></RelativeLayout>4:详见Activity:
/*** 自定义布局的原生广告* * @author Administrator* */
public class NativeADActivity extends Activity implements NativeAdListener,OnClickListener {private NativeADDataRef adItem;private NativeAD nativeAD;private Button btn_download;// 下载按钮private Button loadNative, showNative;//加载  /和显示广告@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gdtnativead_demo);loadNative = (Button) findViewById(R.id.loadNative);showNative = (Button) findViewById(R.id.showNative);loadNative.setOnClickListener(this);showNative.setOnClickListener(this);}/*** 加载广告,初始化*/public void loadAD() {// 在广告初始化前调用此方法,转为多线程原生广告MultiProcessFlag.setMultiProcess(true);if (nativeAD == null) {// 初始化this.nativeAD = new NativeAD(this, Constants.APPID,Constants.NativePosID, this);}int count = 1; // 一次拉取的广告条数:范围1-30nativeAD.loadAD(count);// 开始读取广告}/*** 展示广告,自定义广告布局*/public void showAD() {ImageView img_logo = (ImageView) findViewById(R.id.nativeADContainer).findViewById(R.id.img_logo);// 广告LogoImageView img_poster = (ImageView) findViewById(R.id.nativeADContainer).findViewById(R.id.img_poster);// 图片内容TextView text_name = (TextView) findViewById(R.id.nativeADContainer).findViewById(R.id.text_name);// 文字标题TextView text_desc = (TextView) findViewById(R.id.nativeADContainer).findViewById(R.id.text_desc);// 文字内容btn_download = (Button) findViewById(R.id.nativeADContainer).findViewById(R.id.btn_download);// 下载按钮getImage(img_logo, adItem.getIconUrl());//通过Volley框架设置图片getImage(img_poster, adItem.getImgUrl());text_name.setText(adItem.getTitle());//设置文字text_desc.setText(adItem.getDesc());adItem.onExposured(this.findViewById(R.id.nativeADContainer));//设置下载按钮btn_download.setText(getADButtonText());btn_download.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {adItem.onClicked(v);//发送相关的状态通知}});}/*** App类广告安装、下载状态的更新(普链广告没有此状态,其值为-1) 返回的AppStatus含义如下: 0:未下载 1:已安装 2:已安装旧版本* 4:下载中(可获取下载进度“0-100”) 8:下载完成 16:下载失败*/private String getADButtonText() {if (adItem == null) {return "……";}if (!adItem.isAPP()) {return "查看详情";}switch (adItem.getAPPStatus()) {case 0:return "点击下载";case 1:return "点击启动";case 2:return "点击更新";case 4:return "下载中" + adItem.getProgress() + "%";case 8:return "点击安装";case 16:return "下载失败,点击重试";default:return "查看详情";}}/*** 加载成功时调用*/@Overridepublic void onADLoaded(List<NativeADDataRef> arg0) {if (arg0.size() > 0) {adItem = arg0.get(0);// $.id(R.id.showNative).enabled(true);//设置为可用showNative.setEnabled(true);Toast.makeText(this, "原生广告加载成功", Toast.LENGTH_LONG).show();} else {Log.i("AD_DEMO", "NOADReturn");}}/*** 广告状态发送改变,更新下载按钮文字*/@Overridepublic void onADStatusChanged(NativeADDataRef arg0) {btn_download.setText(getADButtonText());}/*** 加载失败时调用*/@Overridepublic void onNoAD(int arg0) {Log.e("tag: ", "" + arg0);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.loadNative:// 加载广告loadAD();break;case R.id.showNative:// 显示广告showAD();break;}}/*** Volley框架获得图片* * @param iv* @param url*/public void getImage(ImageView iv, String url) {String imgUrl = url;RequestQueue mRequestQueue = Volley.newRequestQueue(this);final LruCache<String, Bitmap> mImageCache = new LruCache<String, Bitmap>(20);ImageLoader.ImageCache imageCache = new ImageLoader.ImageCache() {@Overridepublic void putBitmap(String key, Bitmap value) {mImageCache.put(key, value);}@Overridepublic Bitmap getBitmap(String key) {return mImageCache.get(key);}};ImageLoader mImageLoader = new ImageLoader(mRequestQueue, imageCache);// imageView是一个ImageView实例// ImageLoader.getImageListener的第二个参数是默认的图片resource id// 第三个参数是请求失败时候的资源id,可以指定为0ImageLoader.ImageListener listener = ImageLoader.getImageListener(iv, android.R.drawable.ic_menu_rotate,android.R.drawable.ic_delete);mImageLoader.get(imgUrl, listener);}
}5:效果图:

这里写图片描述

这篇关于广点通sdk接入 _原生广告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409715

相关文章

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败

一、背景 java应用需要接入pinpoint,同一个虚拟机上的其他应用接入成功,唯独本应用不行。 首先排除是pinpoint agent的问题,因为其他应用都正常。 然后,我就对比二者的启动脚本。 -javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=DA301004_17 -Dpinpoint.applic

Linux Debian12安装原生版微信

1.原生版微信下载地址: https://archive.ubuntukylin.com/software/pool/partner/ 找到weixin,2022年05月23日最新版本,weixin_2.1.4_amd64.deb,下载。 2.微信安装: sudo dpkg -i weixin_2.1.4_amd64.deb 3.登陆即可。

一文说清什么是AI原生(AI Native)应用以及特点

引言:智能新纪元 如今,走在街头,哪儿不被智能科技包围?智能音箱、自动驾驶汽车、聊天机器人......这些都在用不同的方式提升我们的生活体验。然而,究竟什么才能称得上“AI原生应用”呢? 什么是AI原生?   AI原生不仅仅是简单地引入人工智能功能。真正的AI原生应用犹如一个智慧的“大脑”,它的每一个决策都依赖于深度学习与数据分析。以Siri为例,它通过学习用户的习惯和需求,提供个性化的

软文发稿相比其他广告形式有哪些持续性优势?

软文发稿在品牌宣发中具有显著的持续性优势,特别是在与其他广告形式的比较中更能体现这些特点。凭借其潜移默化的影响力、增强品牌权威性和公信力、持续性的曝光优势、精准触达目标受众的能力、强互动性与引导性,以及较高的性价比,已经成为品牌推广不可或缺的手段 一 长期存在与持续曝光 长时间的内容可见性     软文发表后,通常会长时间存在于各种平台上,无论是官网、博客、行业网站还是社交媒体帖子。读

android sdk 设置

android sdk 设置 http://www.androiddevtools.cn/

unable to access android sdk add-on list解决办法

mac环境,由于不小心删掉了sdk文件夹的内容,拷贝别人的文件内容过来后,发现sdkmanager不见了。 慌乱中重装了Android Studio。 打开app后发现如下提示:unable to access android sdk add-on list 解决办法: 在 Android Studio 安装目录 bin/idea.properties 文件最后追加一句 disabl

兔子--SDK,ADT,AVD,IDE,ADB

a:SDK(Software Development Kit):开发android应用所需要的开发工具的集合,包括库文件及工具。 b:ADT(Android Developer Tools):在Eclipse下开发工具的升级下载工具。adt只是一个eclipse的插件,里面可以设置 sdk路径. c:IDE:集成开发环境。IDE通常包括编程语言编辑器、自动建立工具、通常还包括调试

❤《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案

《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案 文章目录 《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案1、问题一:原生开发中 request请求中返回 的数据无法 使用this传递给 data{}中怎么办?2、刚登录后如何将token信息保存,然后在后边的信息中使用。3、小程序下边的导航栏如何设置 1、问题一:原生开发中 request请求中返回 的数据无法

一步步教你接入个推 推送

一: manifast中的配置 权限: <!-- 个推SDK权限配置开始 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permissi