多重广告
Last updated
Last updated
多重广告是适用于系统ListView或者RecyclerView列表中穿插广告内容,保持风格与布局依然和用户一致,做到完美融入列表布局的广告类型
用户完成广告初始化步骤入门指南
本指南采用RecyclerView做为展示示例,ListView相关展示流程相同
首先,基于多重广告展示原理,在列表数据填充前,需要完成控件初始化,示例如下
public class CustomActivity extends AppCompatActivity {
RecyclerView recyview;
QuickAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xml);
initView();
setCustomView();
}
private void initView() {
recyview = findViewById(R.id.recyview);
}
private void setCustomView() {
Adx3CustomAdView.getInstance().loadData(getApplicationContext(), "UnitId");
}
}
广告控件初始化完成后,根据示例,用户完成列表控件初始化与数据填充,示例如下
LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyview.setLayoutManager(manager);
adapter = new QuickAdapter(getStrings());
recyview.setAdapter(adapter);
根据RecyclerView模式当前示例展示为横向队列,QuickAdapter为RecyclerView默认数据适配器,请用户根据自身业务需求做自身调整
当前布局配置为列表布局单个item布局,根据业务实际要求,布局样式布局可能不同,参考示例如下
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/layout_item"
xmlns:app="http://schemas.android.com/apk/res-auto">
<io.adx3.library.view.Adx3CustomLayoutAdview
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<io.adx3.library.view.Adx3ImageItemView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<io.adx3.library.view.Adx3TextItemView
android:id="@+id/textview"
android:layout_below="@+id/image"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="30dp" />
</io.adx3.library.view.Adx3CustomLayoutAdview>
</androidx.constraintlayout.widget.ConstraintLayout>
当前布局采用图片+文本的形式进行页面展示
完成布局与控件初始化后,针对列表控件,以下示例,展示适配器填充与控件相关事件操作
public class QuickAdapter extends RecyclerView.Adapter<QuickAdapter.ViewHolder> {
List<String> list;
public QuickAdapter(List<String> strings) {
list = strings;
}
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclview, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull QuickAdapter.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
holder.view.setData(position, new CustomItemListener() {
@Override
public void loadByUser() {
}
@Override
public void loadUrl(String url) {
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
Adx3CustomLayoutAdview view;
Adx3ImageItemView imageItemView;
Adx3TextItemView textItemView;
ConstraintLayout layout_item;
public ViewHolder(@NonNull View itemView) {
super(itemView);
view = itemView.findViewById(R.id.layout);
imageItemView = itemView.findViewById(R.id.image);
textItemView = itemView.findViewById(R.id.textview);
layout_item = itemView.findViewById(R.id.layout_item);
}
}
}
loadByUser - 参数回调方法,当前回调方法用于用户自身数据填充,用户可进行非广告位内容配置,当前配置为页面文本框内容
loadUrl - 点击回调方法,当前回调方法可区分用户自身控件或广告位,用户可根据当前回调,完成自身操作逻辑,广告位操作不影响用户业务流程
至此,多重广告流程添加完成,用户列表展示逻辑,与多重广告已完成隔离,不会因广告相关展示与配置影响用户自定流程