adjust ad
This commit is contained in:
parent
5f6205b41d
commit
bdd6eff8c1
|
@ -406,7 +406,7 @@ public abstract class Activity_base extends AppCompatActivity {
|
||||||
bannerContainer.removeAllViews();
|
bannerContainer.removeAllViews();
|
||||||
bannerContainer.addView(bannerView);
|
bannerContainer.addView(bannerView);
|
||||||
// bannerContainer.setVisibility(View.VISIBLE);
|
// bannerContainer.setVisibility(View.VISIBLE);
|
||||||
Log.d(TAG, "loadBannerAd: set banner VISIBLE");
|
// Log.d(TAG, "loadBannerAd: set banner VISIBLE");
|
||||||
// mTTAdNative.loadBannerAd(adSlot,null);
|
// mTTAdNative.loadBannerAd(adSlot,null);
|
||||||
//设置广告互动监听回调
|
//设置广告互动监听回调
|
||||||
ad.setBannerInteractionListener(new TTBannerAd.AdInteractionListener() {
|
ad.setBannerInteractionListener(new TTBannerAd.AdInteractionListener() {
|
||||||
|
@ -550,12 +550,12 @@ public abstract class Activity_base extends AppCompatActivity {
|
||||||
public void onError(int code, String message) {
|
public void onError(int code, String message) {
|
||||||
// TToast.show(oContext, "load error : " + code + ", " + message);
|
// TToast.show(oContext, "load error : " + code + ", " + message);
|
||||||
Log.e(TAG, "loadBannerAd: " + code + ", " + message);
|
Log.e(TAG, "loadBannerAd: " + code + ", " + message);
|
||||||
bannerContainer.setBackgroundResource(R.color.transparent);
|
// bannerContainer.setBackgroundResource(R.color.transparent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNativeAdLoad(List<TTNativeAd> ads) {
|
public void onNativeAdLoad(List<TTNativeAd> ads) {
|
||||||
bannerContainer.setBackgroundResource(R.color.transparent);
|
// bannerContainer.setBackgroundResource(R.color.transparent);
|
||||||
List<TTNativeAd> tmp = new ArrayList<TTNativeAd>();
|
List<TTNativeAd> tmp = new ArrayList<TTNativeAd>();
|
||||||
for (TTNativeAd ad : ads) {
|
for (TTNativeAd ad : ads) {
|
||||||
if (ad != null) {
|
if (ad != null) {
|
||||||
|
@ -648,7 +648,7 @@ public abstract class Activity_base extends AppCompatActivity {
|
||||||
//bannerContainer.setVisibility(View.VISIBLE);
|
//bannerContainer.setVisibility(View.VISIBLE);
|
||||||
if (!Constants.AD_BACKGROUND_TRANSPARENT)
|
if (!Constants.AD_BACKGROUND_TRANSPARENT)
|
||||||
bannerContainer.setBackgroundResource(R.color.mintcream); // @color/mintcream
|
bannerContainer.setBackgroundResource(R.color.mintcream); // @color/mintcream
|
||||||
Log.d(TAG, "loadBannerAd: set banner VISIBLE,mShowAd " + mShowAd);
|
// Log.d(TAG, "loadBannerAd: set banner VISIBLE,mShowAd " + mShowAd);
|
||||||
//绑定原生广告的数据
|
//绑定原生广告的数据
|
||||||
setAdData(bannerContainer, bannerView, nativeAd);
|
setAdData(bannerContainer, bannerView, nativeAd);
|
||||||
// mTTAdNative.loadNativeAd(adSlot,null);
|
// mTTAdNative.loadNativeAd(adSlot,null);
|
||||||
|
|
|
@ -129,8 +129,8 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
@BindView(R.id.tvUrl)
|
@BindView(R.id.tvUrl)
|
||||||
TextView tvUrl;
|
TextView tvUrl;
|
||||||
|
|
||||||
@BindView(R.id.top_banner_container)
|
// @BindView(R.id.top_banner_container)
|
||||||
FrameLayout mTopBannerContainer;
|
// FrameLayout mTopBannerContainer;
|
||||||
|
|
||||||
@BindView(R.id.imgLoading)
|
@BindView(R.id.imgLoading)
|
||||||
pl.droidsonroids.gif.GifImageView imgLoading;
|
pl.droidsonroids.gif.GifImageView imgLoading;
|
||||||
|
@ -138,7 +138,7 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
FrameLayout frmAD;
|
FrameLayout frmAD;
|
||||||
|
|
||||||
@BindView(R.id.native_banner_container )
|
@BindView(R.id.native_banner_container )
|
||||||
FrameLayout mNative_banner_container;
|
FrameLayout mNative_status_banner_container;
|
||||||
|
|
||||||
@BindView(R.id.native_banner_container_in_lines )
|
@BindView(R.id.native_banner_container_in_lines )
|
||||||
FrameLayout mNative_banner_container_in_lines;
|
FrameLayout mNative_banner_container_in_lines;
|
||||||
|
@ -212,7 +212,7 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
pageFactory = PageFactory.getInstance(getApplicationContext());
|
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||||
pageFactory.clear();
|
pageFactory.clear();
|
||||||
pageFactory.setAd(this);
|
pageFactory.setAd(this);
|
||||||
mBannerContainer.setVisibility(View.GONE);
|
// mBannerContainer.setVisibility(View.GONE);
|
||||||
|
|
||||||
// showProgress (false,"读取目录信息");
|
// showProgress (false,"读取目录信息");
|
||||||
/* int slept = 0;
|
/* int slept = 0;
|
||||||
|
@ -480,16 +480,24 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showAdAfterIni() {
|
public void showAdAfterIni() {
|
||||||
if(frmAD.getVisibility()== View.INVISIBLE)
|
// if(frmAD.getVisibility()== View.INVISIBLE)
|
||||||
// frmAD.setVisibility(View.VISIBLE);
|
// frmAD.setVisibility(View.VISIBLE);
|
||||||
Log.d(TAG, "pageAnimation showAdAfterIni: ");
|
/* if(mNative_banner_container_in_lines.getVisibility()== View.GONE)
|
||||||
|
mNative_banner_container_in_lines.setVisibility(View.VISIBLE);*/
|
||||||
|
// Log.d(TAG, "pageAnimation showAdAfterIni: ");
|
||||||
|
pageFactory.showAd();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void hideAdBeforeIni() {
|
public void hideAdBeforeIni() {
|
||||||
if(frmAD.getVisibility()== View.VISIBLE)
|
// if(frmAD.getVisibility()== View.VISIBLE)
|
||||||
// frmAD.setVisibility(View.INVISIBLE);
|
// frmAD.setVisibility(View.INVISIBLE);
|
||||||
Log.d(TAG, "pageAnimation hideAdBeforeIni: ");
|
/* if(mNative_banner_container_in_lines.getVisibility()== View.VISIBLE)
|
||||||
|
mNative_banner_container_in_lines.setVisibility(View.GONE);*/
|
||||||
|
// mNative_banner_container_in_lines.removeAllViews();
|
||||||
|
// Log.d(TAG, "pageAnimation hideAdBeforeIni: ");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1071,67 +1079,104 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void hideAds(){
|
public void hideStatusAds(){
|
||||||
/* if(mNative_banner_container.getVisibility() ==View.VISIBLE) {
|
Log.d(TAG, "loadBannerAd: hideAds()");
|
||||||
mNative_banner_container.setVisibility(View.GONE);
|
/* try{
|
||||||
|
throw new Exception("");
|
||||||
|
}catch (Exception e){
|
||||||
|
Log.e(TAG, "loadBannerAd: ", e);
|
||||||
}*/
|
}*/
|
||||||
|
if(mNative_status_banner_container.getVisibility() ==View.VISIBLE) {
|
||||||
|
mNative_status_banner_container.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
// mNative_banner_container_in_lines.removeAllViews();
|
||||||
|
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||||
|
}
|
||||||
|
private void hideAdSlot(ViewGroup view){
|
||||||
|
mNative_banner_container_in_lines.removeAllViews();
|
||||||
|
if(view.getVisibility() ==View.VISIBLE) {
|
||||||
|
view.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||||||
|
params.width =0;
|
||||||
|
view.setLayoutParams(params);*/
|
||||||
|
// view.setBackgroundResource(R.color.transparent);
|
||||||
|
|
||||||
|
//mNative_banner_container_in_lines.removeAllViews();
|
||||||
|
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||||
|
|
||||||
|
}
|
||||||
|
private void showAdSlot(ViewGroup view){
|
||||||
|
Log.d(TAG, "loadBannerAd: showAdSlot()");
|
||||||
|
if(view.getVisibility() ==View.GONE) {
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||||||
|
|
||||||
|
params.width =-1;
|
||||||
|
view.setLayoutParams(params);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
public void showNativeBannerInLines(int height,int adY){
|
public void showNativeBannerInLines(int height,int adY){
|
||||||
hideSystemUI();
|
// hideSystemUI();
|
||||||
if(mNative_banner_container.getVisibility() ==View.VISIBLE) {
|
// hideAdSlot(mNative_banner_container);
|
||||||
mNative_banner_container.setVisibility(View.INVISIBLE);
|
// hideAdSlot(mNative_banner_container_in_lines);
|
||||||
}
|
|
||||||
mNative_banner_container_in_lines .setVisibility(View.INVISIBLE);
|
|
||||||
// mNative_banner_container_in_lines.removeAllViews();
|
// mNative_banner_container_in_lines.removeAllViews();
|
||||||
// mNative_banner_container_in_lines.removeAllViews();
|
// mNative_banner_container_in_lines.removeAllViews();
|
||||||
mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||||
|
hideAdSlot(mNative_banner_container_in_lines);
|
||||||
if(height<=0){
|
if(height<=0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, adY %s ",Constants.SCREEN_WIDTH_PIX-50, adY/Constants.ONE_DP_SIZE ));
|
||||||
|
if( adY >400*Constants.ONE_DP_SIZE){
|
||||||
|
return;
|
||||||
|
}
|
||||||
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY));
|
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY));
|
||||||
loadNativeBannerAd(mNative_banner_container_in_lines,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
loadNativeBannerAd(mNative_banner_container_in_lines,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
||||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container_in_lines.getLayoutParams();
|
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container_in_lines.getLayoutParams();
|
||||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE);
|
params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE);
|
||||||
params.width =-1;
|
params.width =-1;
|
||||||
|
params.height = (int) getResources().getDimension(R.dimen.nativeBannerHeight);
|
||||||
mNative_banner_container_in_lines.setLayoutParams(params);
|
mNative_banner_container_in_lines.setLayoutParams(params);
|
||||||
mNative_banner_container_in_lines.setVisibility(View.VISIBLE);
|
showAdSlot(mNative_banner_container_in_lines);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void showTopBanner( int adHeight,int adY) {
|
public void showTopBanner( int adHeight,int adY) {
|
||||||
hideSystemUI();
|
// hideSystemUI();
|
||||||
mTopBannerContainer.setVisibility(View.INVISIBLE);//翻页引起抖动
|
// mTopBannerContainer.setVisibility(View.INVISIBLE);//翻页引起抖动
|
||||||
// mTopBannerContainer.removeAllViews();
|
//mTopBannerContainer.removeAllViews();
|
||||||
|
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||||
|
hideAdSlot(mNative_banner_container_in_lines);
|
||||||
if(adHeight<=0){
|
if(adHeight<=0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTopBannerContainer.getLayoutParams();
|
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container_in_lines.getLayoutParams();
|
||||||
loadBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
loadBannerAd(mNative_banner_container_in_lines,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||||||
// loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID, 304,200);
|
// loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID, 304,200);
|
||||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY -5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0);
|
params.setMargins(10*Constants.ONE_DP_SIZE, adY -5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0);
|
||||||
params.width =-1;
|
params.width =-1;
|
||||||
mTopBannerContainer.setLayoutParams(params);
|
params.height = (int) getResources().getDimension(R.dimen.topBannerHeight);
|
||||||
mTopBannerContainer.setVisibility(View.VISIBLE);
|
mNative_banner_container_in_lines.setLayoutParams(params);
|
||||||
|
showAdSlot(mNative_banner_container_in_lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final int contentAdHight=80;
|
final int contentAdHight=80;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showAd(boolean showAd ,int adHeight,int adY) {
|
public void showStatusAd(boolean showAd ,int adHeight,int adY) {
|
||||||
|
|
||||||
hideSystemUI(); mShowAd =showAd;
|
// hideSystemUI();
|
||||||
|
mShowAd =showAd;
|
||||||
// mBannerContainer.setVisibility(View.GONE);
|
// mBannerContainer.setVisibility(View.GONE);
|
||||||
mNative_banner_container.setVisibility(View.INVISIBLE);
|
|
||||||
if(mTopBannerContainer.getVisibility() ==View.VISIBLE) {
|
|
||||||
mTopBannerContainer.setVisibility(View.INVISIBLE);
|
|
||||||
}
|
|
||||||
if(mNative_banner_container_in_lines.getVisibility() ==View.VISIBLE) {
|
|
||||||
mNative_banner_container_in_lines.setVisibility(View.INVISIBLE);
|
|
||||||
}
|
|
||||||
if(!Constants.SHOWAD){
|
if(!Constants.SHOWAD){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1144,25 +1189,30 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(adHeight >contentAdHight){
|
if(adHeight >contentAdHight){
|
||||||
|
|
||||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container.getLayoutParams();
|
|
||||||
|
|
||||||
// Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
// Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||||
|
|
||||||
if(adHeight>150*Constants.ONE_DP_SIZE && adY <400*Constants.ONE_DP_SIZE){
|
if(adHeight>150*Constants.ONE_DP_SIZE && adY <400*Constants.ONE_DP_SIZE){
|
||||||
Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s,showAd %s",Constants.SCREEN_WIDTH_PIX-50,adHeight/Constants.ONE_DP_SIZE,adY/Constants.ONE_DP_SIZE, showAd));
|
Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s,showAd %s",Constants.SCREEN_WIDTH_PIX-50,adHeight/Constants.ONE_DP_SIZE,adY/Constants.ONE_DP_SIZE, showAd));
|
||||||
|
// hideAdSlot(mNative_banner_container);
|
||||||
|
// hideAdSlot(mTopBannerContainer);
|
||||||
|
|
||||||
mNative_banner_container.removeAllViews();
|
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_status_banner_container.getLayoutParams();
|
||||||
mNative_banner_container.setBackgroundResource(R.color.transparent);
|
hideAdSlot(mNative_status_banner_container);
|
||||||
|
|
||||||
loadNativeBannerAd(mNative_banner_container,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
// mNative_banner_container_in_lines.removeAllViews();
|
||||||
|
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||||
|
|
||||||
|
loadNativeBannerAd(mNative_status_banner_container,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
||||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY-20*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 50*Constants.ONE_DP_SIZE);
|
params.setMargins(10*Constants.ONE_DP_SIZE, adY-20*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 50*Constants.ONE_DP_SIZE);
|
||||||
|
params.height=-1;
|
||||||
mNative_banner_container.setLayoutParams(params);
|
mNative_status_banner_container.setLayoutParams(params);
|
||||||
mNative_banner_container.setVisibility(View.VISIBLE);
|
showAdSlot(mNative_status_banner_container);
|
||||||
showTopBanner(0,0);
|
// mNative_banner_container.setVisibility(View.VISIBLE);
|
||||||
|
// showTopBanner(0,0);
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
/* loadBannerAd(mBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
/* loadBannerAd(mBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||||||
|
@ -1177,332 +1227,4 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*private void loadBannerAd(String codeId,int width,int height) {
|
|
||||||
//step4:创建广告请求参数AdSlot,具体参数含义参考文档
|
|
||||||
|
|
||||||
|
|
||||||
*//* if(height >390){
|
|
||||||
width =(int)(height*1.78);
|
|
||||||
if(width > Constants.SCREEN_WIDTH_PIX-50 ){
|
|
||||||
width= Constants.SCREEN_WIDTH_PIX-50;
|
|
||||||
height =(int)(width/1.78);
|
|
||||||
}
|
|
||||||
}else if(height >150){
|
|
||||||
width =(int)(height*1.78);
|
|
||||||
}*//*
|
|
||||||
width =990;
|
|
||||||
//height=150;
|
|
||||||
height=height > 500 ? 500: height;
|
|
||||||
Log.d(TAG, String.format("loadBannerAd:finial width %s, height %s ",width,height));
|
|
||||||
AdSlot adSlot = new AdSlot.Builder()
|
|
||||||
.setCodeId(codeId) //广告位id
|
|
||||||
.setSupportDeepLink(true)
|
|
||||||
.setImageAcceptedSize(width, height)
|
|
||||||
.build();
|
|
||||||
//step5:请求广告,对请求回调的广告作渲染处理
|
|
||||||
mTTAdNative.loadBannerAd(adSlot, new TTAdNative.BannerAdListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(int code, String message) {
|
|
||||||
TToast.show(ReadActivity.this, "load error : " + code + ", " + message);
|
|
||||||
mBannerContainer.removeAllViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBannerAdLoad(final TTBannerAd ad) {
|
|
||||||
if (ad == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
View bannerView = ad.getBannerView();
|
|
||||||
if (bannerView == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//设置轮播的时间间隔 间隔在30s到120秒之间的值,不设置默认不轮播
|
|
||||||
ad.setSlideIntervalTime(30 * 1000);
|
|
||||||
mBannerContainer.removeAllViews();
|
|
||||||
mBannerContainer.addView(bannerView);
|
|
||||||
//设置广告互动监听回调
|
|
||||||
ad.setBannerInteractionListener(new TTBannerAd.AdInteractionListener() {
|
|
||||||
@Override
|
|
||||||
public void onAdClicked(View view, int type) {
|
|
||||||
TToast.show(ReadActivity.this, "广告被点击");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAdShow(View view, int type) {
|
|
||||||
TToast.show(ReadActivity.this, "广告展示");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//(可选)设置下载类广告的下载监听
|
|
||||||
bindDownloadListener(ad);
|
|
||||||
//在banner中显示网盟提供的dislike icon,有助于广告投放精准度提升
|
|
||||||
ad.setShowDislikeIcon(new TTAdDislike.DislikeInteractionCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSelected(int position, String value) {
|
|
||||||
TToast.show(ReadActivity.this, "点击 " + value);
|
|
||||||
//用户选择不喜欢原因后,移除广告展示
|
|
||||||
mBannerContainer.removeAllViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCancel() {
|
|
||||||
TToast.show(ReadActivity.this, "点击取消 ");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//获取网盟dislike dialog,您可以在您应用中本身自定义的dislike icon 按钮中设置 mTTAdDislike.showDislikeDialog();
|
|
||||||
*//*mTTAdDislike = ad.getDislikeDialog(new TTAdDislike.DislikeInteractionCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSelected(int position, String value) {
|
|
||||||
TToast.show(mContext, "点击 " + value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCancel() {
|
|
||||||
TToast.show(mContext, "点击取消 ");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (mTTAdDislike != null) {
|
|
||||||
XXX.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
mTTAdDislike.showDislikeDialog();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} *//*
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
private boolean mHasShowDownloadActive = false;
|
|
||||||
private void bindDownloadListener(TTBannerAd ad) {
|
|
||||||
ad.setDownloadListener(new TTAppDownloadListener() {
|
|
||||||
@Override
|
|
||||||
public void onIdle() {
|
|
||||||
TToast.show(ReadActivity.this, "点击图片开始下载", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadActive(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
if (!mHasShowDownloadActive) {
|
|
||||||
mHasShowDownloadActive = true;
|
|
||||||
TToast.show(ReadActivity.this, "下载中,点击图片暂停", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
TToast.show(ReadActivity.this, "下载暂停,点击图片继续", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
TToast.show(ReadActivity.this, "下载失败,点击图片重新下载", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onInstalled(String fileName, String appName) {
|
|
||||||
TToast.show(ReadActivity.this, "安装完成,点击图片打开", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadFinished(long totalBytes, String fileName, String appName) {
|
|
||||||
TToast.show(ReadActivity.this, "点击图片安装", Toast.LENGTH_LONG);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* //-------------native toutiao ad
|
|
||||||
private void loadNativeBannerAd(String codeId) {
|
|
||||||
//step4:创建广告请求参数AdSlot,注意其中的setNativeAdtype方法,具体参数含义参考文档
|
|
||||||
final AdSlot adSlot = new AdSlot.Builder()
|
|
||||||
.setCodeId(codeId)
|
|
||||||
.setSupportDeepLink(true)
|
|
||||||
.setImageAcceptedSize(690, 388)
|
|
||||||
.setNativeAdType(AdSlot.TYPE_BANNER) //请求原生广告时候,请务必调用该方法,设置参数为TYPE_BANNER或TYPE_INTERACTION_AD
|
|
||||||
.setAdCount(1)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
//step5:请求广告,对请求回调的广告作渲染处理
|
|
||||||
mTTAdNative.loadNativeAd(adSlot, new TTAdNative.NativeAdListener() {
|
|
||||||
@Override
|
|
||||||
public void onError(int code, String message) {
|
|
||||||
TToast.show(ReadActivity.this, "load error : " + code + ", " + message);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNativeAdLoad(List<TTNativeAd> ads) {
|
|
||||||
if (ads.get(0) == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
View bannerView = LayoutInflater.from(ReadActivity.this).inflate(R.layout.ad_toutiao_native_ad , mBannerContainer, false);
|
|
||||||
if (bannerView == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
//防止内存泄漏
|
|
||||||
mCreativeButton = null;
|
|
||||||
}
|
|
||||||
mBannerContainer.removeAllViews();
|
|
||||||
mBannerContainer.addView(bannerView);
|
|
||||||
//绑定原生广告的数据
|
|
||||||
setAdData(bannerView, ads.get(0));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("RedundantCast")
|
|
||||||
private void setAdData(View nativeView, TTNativeAd nativeAd) {
|
|
||||||
((TextView) nativeView.findViewById(R.id.tv_native_ad_title)).setText(nativeAd.getTitle());
|
|
||||||
((TextView) nativeView.findViewById(R.id.tv_native_ad_desc)).setText(nativeAd.getDescription());
|
|
||||||
ImageView imgDislike = nativeView.findViewById(R.id.img_native_dislike);
|
|
||||||
bindDislikeAction(nativeAd, imgDislike);
|
|
||||||
if (nativeAd.getImageList() != null && !nativeAd.getImageList().isEmpty()) {
|
|
||||||
TTImage image = nativeAd.getImageList().get(0);
|
|
||||||
if (image != null && image.isValid()) {
|
|
||||||
mAQuery.id(nativeView.findViewById(R.id.iv_native_image)).image(image.getImageUrl());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TTImage icon = nativeAd.getIcon();
|
|
||||||
if (icon != null && icon.isValid()) {
|
|
||||||
ImageOptions options = new ImageOptions();
|
|
||||||
mAQuery.id((nativeView.findViewById(R.id.iv_native_icon))).image(icon.getImageUrl(), options);
|
|
||||||
}
|
|
||||||
mCreativeButton = (Button) nativeView.findViewById(R.id.btn_native_creative);
|
|
||||||
//可根据广告类型,为交互区域设置不同提示信息
|
|
||||||
switch (nativeAd.getInteractionType()) {
|
|
||||||
case TTAdConstant.INTERACTION_TYPE_DOWNLOAD:
|
|
||||||
//如果初始化ttAdManager.createAdNative(getApplicationContext())没有传入activity 则需要在此传activity,否则影响使用Dislike逻辑
|
|
||||||
nativeAd.setActivityForDownloadApp(this);
|
|
||||||
mCreativeButton.setVisibility(View.VISIBLE);
|
|
||||||
nativeAd.setDownloadListener(mDownloadListener); // 注册下载监听器
|
|
||||||
break;
|
|
||||||
case TTAdConstant.INTERACTION_TYPE_DIAL:
|
|
||||||
mCreativeButton.setVisibility(View.VISIBLE);
|
|
||||||
mCreativeButton.setText("立即拨打");
|
|
||||||
break;
|
|
||||||
case TTAdConstant.INTERACTION_TYPE_LANDING_PAGE:
|
|
||||||
case TTAdConstant.INTERACTION_TYPE_BROWSER:
|
|
||||||
mCreativeButton.setVisibility(View.VISIBLE);
|
|
||||||
mCreativeButton.setText("查看详情");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mCreativeButton.setVisibility(View.GONE);
|
|
||||||
TToast.show(ReadActivity.this, "交互类型异常");
|
|
||||||
}
|
|
||||||
|
|
||||||
//可以被点击的view, 也可以把nativeView放进来意味整个广告区域可被点击
|
|
||||||
List<View> clickViewList = new ArrayList<>();
|
|
||||||
clickViewList.add(nativeView);
|
|
||||||
|
|
||||||
//触发创意广告的view(点击下载或拨打电话)
|
|
||||||
List<View> creativeViewList = new ArrayList<>();
|
|
||||||
//如果需要点击图文区域也能进行下载或者拨打电话动作,请将图文区域的view传入
|
|
||||||
//creativeViewList.add(nativeView);
|
|
||||||
creativeViewList.add(mCreativeButton);
|
|
||||||
|
|
||||||
//重要! 这个涉及到广告计费,必须正确调用。convertView必须使用ViewGroup。
|
|
||||||
nativeAd.registerViewForInteraction((ViewGroup) nativeView, clickViewList, creativeViewList, imgDislike, new TTNativeAd.AdInteractionListener() {
|
|
||||||
@Override
|
|
||||||
public void onAdClicked(View view, TTNativeAd ad) {
|
|
||||||
if (ad != null) {
|
|
||||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "被点击");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAdCreativeClick(View view, TTNativeAd ad) {
|
|
||||||
if (ad != null) {
|
|
||||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "被创意按钮被点击");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAdShow(TTNativeAd ad) {
|
|
||||||
if (ad != null) {
|
|
||||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "展示");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//接入网盟的dislike 逻辑,有助于提示广告精准投放度
|
|
||||||
private void bindDislikeAction(TTNativeAd ad, View dislikeView) {
|
|
||||||
final TTAdDislike ttAdDislike = ad.getDislikeDialog(this);
|
|
||||||
if (ttAdDislike != null) {
|
|
||||||
ttAdDislike.setDislikeInteractionCallback(new TTAdDislike.DislikeInteractionCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSelected(int position, String value) {
|
|
||||||
mBannerContainer.removeAllViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCancel() {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
dislikeView.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
if (ttAdDislike != null)
|
|
||||||
ttAdDislike.showDislikeDialog();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private final TTAppDownloadListener mDownloadListener = new TTAppDownloadListener() {
|
|
||||||
@Override
|
|
||||||
public void onIdle() {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
mCreativeButton.setText("开始下载");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadActive(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
if (totalBytes <= 0L) {
|
|
||||||
mCreativeButton.setText("下载中 percent: 0");
|
|
||||||
} else {
|
|
||||||
mCreativeButton.setText("下载中 percent: " + (currBytes * 100 / totalBytes));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
mCreativeButton.setText("下载暂停 percent: " + (currBytes * 100 / totalBytes));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName) {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
mCreativeButton.setText("重新下载");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onInstalled(String fileName, String appName) {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
mCreativeButton.setText("点击打开");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDownloadFinished(long totalBytes, String fileName, String appName) {
|
|
||||||
if (mCreativeButton != null) {
|
|
||||||
mCreativeButton.setText("点击安装");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -373,8 +373,11 @@ public class NetUtil {
|
||||||
Constants.AD_SPLASH_INVTERVAL =(long) 1000 * ads.getInt("splashInterval");
|
Constants.AD_SPLASH_INVTERVAL =(long) 1000 * ads.getInt("splashInterval");
|
||||||
Constants.AD_SPLASH_PAGES = ads.getInt("splashPageCount");
|
Constants.AD_SPLASH_PAGES = ads.getInt("splashPageCount");
|
||||||
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterTopBanner");
|
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterTopBanner");
|
||||||
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterContentBanner"); //TODO: put it in server
|
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterContentBanner");
|
||||||
|
|
||||||
|
if(Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT >1 && Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT ){
|
||||||
|
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT--; //顶部广告和页内广告要错开
|
||||||
|
}
|
||||||
|
|
||||||
Log.d(TAG, String.format("initHostConstants: Constants.AD_SPLASH_INVTERVAL %s,AD_SPLASH_PAGES %s",Constants.AD_SPLASH_INVTERVAL,Constants.AD_SPLASH_PAGES ));
|
Log.d(TAG, String.format("initHostConstants: Constants.AD_SPLASH_INVTERVAL %s,AD_SPLASH_PAGES %s",Constants.AD_SPLASH_INVTERVAL,Constants.AD_SPLASH_PAGES ));
|
||||||
// try {
|
// try {
|
||||||
|
|
|
@ -6,7 +6,7 @@ public interface AdInterface {
|
||||||
* @param height
|
* @param height
|
||||||
* @param adY
|
* @param adY
|
||||||
*/
|
*/
|
||||||
public void showAd(boolean showAd,int height,int adY);
|
public void showStatusAd(boolean showAd,int height,int adY);
|
||||||
public void showTopBanner(int height,int adY);
|
public void showTopBanner(int height,int adY);
|
||||||
public void showNativeBannerInLines(int height,int adY);
|
public void showNativeBannerInLines(int height,int adY);
|
||||||
public void hideSystemUI();
|
public void hideSystemUI();
|
||||||
|
@ -16,5 +16,5 @@ public interface AdInterface {
|
||||||
public void showLoading(boolean isShow);
|
public void showLoading(boolean isShow);
|
||||||
public void hideReadSetting();
|
public void hideReadSetting();
|
||||||
public void showReadSetting();
|
public void showReadSetting();
|
||||||
public void hideAds();
|
public void hideStatusAds();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.SyncAdapterType;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
|
@ -194,6 +195,12 @@ public class PageFactory implements ChangeSource{
|
||||||
return mAd;
|
return mAd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//页面宽
|
||||||
|
private int mAdHeight;
|
||||||
|
//页面高
|
||||||
|
private int mAdY;
|
||||||
|
private enum AdTpye {TOPBANNER,NATIVEINLINES,CHAPTEREND;};
|
||||||
|
private AdTpye mAdType = AdTpye.TOPBANNER;
|
||||||
public void setAd(AdInterface ad){
|
public void setAd(AdInterface ad){
|
||||||
mAd =ad;
|
mAd =ad;
|
||||||
}
|
}
|
||||||
|
@ -246,7 +253,7 @@ public class PageFactory implements ChangeSource{
|
||||||
// Log.d(TAG, "loadBannerAd: set banner gone 0, showingStatusAd " +showingStatusAd);
|
// Log.d(TAG, "loadBannerAd: set banner gone 0, showingStatusAd " +showingStatusAd);
|
||||||
if(showingStatusAd) {
|
if(showingStatusAd) {
|
||||||
if (mAd != null) {
|
if (mAd != null) {
|
||||||
mAd.hideAds();
|
mAd.hideStatusAds();
|
||||||
// Log.d(TAG, "loadBannerAd: set banner gone 1");
|
// Log.d(TAG, "loadBannerAd: set banner gone 1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,6 +488,10 @@ public class PageFactory implements ChangeSource{
|
||||||
page.setPageNo(pageNo);
|
page.setPageNo(pageNo);
|
||||||
chaptPages.add(page);
|
chaptPages.add(page);
|
||||||
length= page.getEnd();
|
length= page.getEnd();
|
||||||
|
if(length >=chars.length){
|
||||||
|
if(page.getLines().size()< mLineCount/2)
|
||||||
|
page.setTopBannerHeight(0);
|
||||||
|
}
|
||||||
// Log.d(TAG, String.format("prepare book build page %s ready for chapter %s,cost %s",pageNo, chaptId,new Date().getTime()-starttime1));
|
// Log.d(TAG, String.format("prepare book build page %s ready for chapter %s,cost %s",pageNo, chaptId,new Date().getTime()-starttime1));
|
||||||
}
|
}
|
||||||
// Log.d(TAG, String.format(" prepare book build pages ready for chapter %s,cost %s", chaptId,new Date().getTime()-starttime));
|
// Log.d(TAG, String.format(" prepare book build pages ready for chapter %s,cost %s", chaptId,new Date().getTime()-starttime));
|
||||||
|
@ -490,43 +501,44 @@ public class PageFactory implements ChangeSource{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public TRPage getNextChapterPage(int chaptId,long position,int pageNo){
|
public TRPage getNextChapterPage(int chaptId,long position,int pageNo) {
|
||||||
mBookUtil.setPostition(chaptId,position);
|
mBookUtil.setPostition(chaptId, position);
|
||||||
|
|
||||||
TRPage trPage = new TRPage();
|
TRPage trPage = new TRPage();
|
||||||
totalPageCnt++;
|
totalPageCnt++;
|
||||||
float bannerH =0;
|
float bannerH = 0;
|
||||||
if(Constants.SHOWAD && pageNo >1) {
|
// Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = 4;
|
||||||
if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT >0 && totalPageCnt % Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == 0) {
|
if (Constants.SHOWAD && pageNo > 1) {
|
||||||
bannerH = mContext.getResources().getDimension(R.dimen.topBannerHeight) +0*Constants.ONE_DP_SIZE;
|
// Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = 1;
|
||||||
trPage.setTopBannerHeight((int)bannerH);
|
|
||||||
}
|
|
||||||
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT=4;
|
|
||||||
if (Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT >0 && totalPageCnt % Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT == 0) {
|
|
||||||
bannerH = mContext.getResources().getDimension(R.dimen.nativeBannerHeight) +4*Constants.ONE_DP_SIZE;
|
|
||||||
calculateLineCount();
|
|
||||||
int adLines = (int) ( bannerH / ((m_fontSize + lineSpace)));
|
|
||||||
|
|
||||||
int adLine = new Random().nextInt( mLineCount -adLines -1);
|
if (Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT > 0 && totalPageCnt % Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT == 0) {
|
||||||
adLine =adLine <mLineCount ? adLine :mLineCount-2;
|
bannerH = mContext.getResources().getDimension(R.dimen.nativeBannerHeight) + 4 * Constants.ONE_DP_SIZE;
|
||||||
if(adLine>0) {
|
calculateLineCount();
|
||||||
trPage.setNativeBannerStartLine(adLine);
|
int adLines = (int) (bannerH / ((m_fontSize + lineSpace)));
|
||||||
//trPage.setNativeBannerHeight(Constants.AD_CHAPT_NATIVE_BANNER_HEIGHT);
|
|
||||||
trPage.setNativeBannerHeight((int)bannerH);
|
int adLine = new Random().nextInt(mLineCount - adLines - 1);
|
||||||
}
|
adLine = adLine < mLineCount ? adLine : mLineCount - 2;
|
||||||
|
if (adLine > 0) {
|
||||||
|
trPage.setNativeBannerStartLine(adLine);
|
||||||
|
//trPage.setNativeBannerHeight(Constants.AD_CHAPT_NATIVE_BANNER_HEIGHT);
|
||||||
|
trPage.setNativeBannerHeight((int) bannerH);
|
||||||
|
}
|
||||||
Log.d(TAG, String.format("getNextChapterPage: pageNo %s, topBannerHeight %s, adLines %s,adLine %s, nativeBannerHeight %s",
|
Log.d(TAG, String.format("getNextChapterPage: pageNo %s, topBannerHeight %s, adLines %s,adLine %s, nativeBannerHeight %s",
|
||||||
pageNo,trPage.getTopBannerHeight(),adLines,adLine,trPage.getNativeBannerHeight()));
|
pageNo, trPage.getTopBannerHeight(), adLines, adLine, trPage.getNativeBannerHeight()));
|
||||||
|
} else if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT > 0 && totalPageCnt % Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == 0) {
|
||||||
|
bannerH = mContext.getResources().getDimension(R.dimen.topBannerHeight) + 0 * Constants.ONE_DP_SIZE;
|
||||||
|
trPage.setTopBannerHeight((int) bannerH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trPage.setPageNo(pageNo);
|
trPage.setPageNo(pageNo);
|
||||||
trPage.setBegin(position +1);
|
trPage.setBegin(position + 1);
|
||||||
|
|
||||||
// Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
// Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
||||||
trPage.setLines(getNextLines(chaptId,trPage));
|
trPage.setLines(getNextLines(chaptId, trPage));
|
||||||
if(trPage.getNativeBannerStartLine() >0 && trPage.getNativeBannerStartLine() >= trPage.getLines().size()){
|
if (trPage.getNativeBannerStartLine() > 0 && trPage.getNativeBannerStartLine() >= trPage.getLines().size()) {
|
||||||
trPage.setNativeBannerStartLine(trPage.getLines().size()-1);
|
trPage.setNativeBannerStartLine(trPage.getLines().size() - 1);
|
||||||
}
|
}
|
||||||
// Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
// Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
||||||
trPage.setEnd(mBookUtil.getPosition(chaptId));
|
trPage.setEnd(mBookUtil.getPosition(chaptId));
|
||||||
return trPage;
|
return trPage;
|
||||||
}
|
}
|
||||||
|
@ -877,7 +889,7 @@ private void hideSysUI(){
|
||||||
while(!showingStatusAd || new Date().getTime() - showStatusAdTime > 2000) {
|
while(!showingStatusAd || new Date().getTime() - showStatusAdTime > 2000) {
|
||||||
showingStatusAd =true;
|
showingStatusAd =true;
|
||||||
showStatusAdTime = new Date().getTime();
|
showStatusAdTime = new Date().getTime();
|
||||||
showAd((int) adHeight, (int) adY);
|
showStatusAd((int) adHeight, (int) adY);
|
||||||
Log.d(TAG, "loadBannerAd: AD is requested, mStatus:" +mStatus);
|
Log.d(TAG, "loadBannerAd: AD is requested, mStatus:" +mStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -923,6 +935,9 @@ private void hideSysUI(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//上次翻书时间
|
//上次翻书时间
|
||||||
private long lastPageTime;
|
private long lastPageTime;
|
||||||
|
|
||||||
|
@ -950,13 +965,12 @@ private void hideSysUI(){
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
handler.sendEmptyMessage(MSG_HID_AD);
|
|
||||||
|
|
||||||
|
|
||||||
if(showAd && mAd!=null){
|
if(showAd && mAd!=null){
|
||||||
// handler.sendEmptyMessage(MSG_HID_AD);
|
handler.sendEmptyMessage(MSG_HID_AD);
|
||||||
|
//handler.sendEmptyMessage(MSG_HID_AD);
|
||||||
handler.sendEmptyMessage(MSG_HIDEPROGRESS);
|
handler.sendEmptyMessage(MSG_HIDEPROGRESS);
|
||||||
|
mAdHeight=0;
|
||||||
|
mAdY=0;
|
||||||
}
|
}
|
||||||
mStatus =Status.FINISH;
|
mStatus =Status.FINISH;
|
||||||
// Log.d(TAG, String.format(" prepare book onDraw chapter %s, getChapters().size() %s ",currentChapter ,getChapters().size() ) );
|
// Log.d(TAG, String.format(" prepare book onDraw chapter %s, getChapters().size() %s ",currentChapter ,getChapters().size() ) );
|
||||||
|
@ -1034,8 +1048,12 @@ private void hideSysUI(){
|
||||||
|
|
||||||
|
|
||||||
if(showAd && mAd!=null){
|
if(showAd && mAd!=null){
|
||||||
mAd.showTopBanner(trPage.getTopBannerHeight(),(int)(marginHeight));
|
mAdHeight=trPage.getTopBannerHeight();
|
||||||
mAd.showNativeBannerInLines(0,0);
|
mAdY=(int)marginHeight;
|
||||||
|
mAdType =AdTpye.TOPBANNER;
|
||||||
|
|
||||||
|
// mAd.showTopBanner(trPage.getTopBannerHeight(),(int)(marginHeight));
|
||||||
|
// mAd.showNativeBannerInLines(0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_lines.size() > 0) {
|
if (m_lines.size() > 0) {
|
||||||
|
@ -1053,9 +1071,12 @@ private void hideSysUI(){
|
||||||
|
|
||||||
if(lineNo==trPage.getNativeBannerStartLine()){
|
if(lineNo==trPage.getNativeBannerStartLine()){
|
||||||
if(showAd && mAd!=null){
|
if(showAd && mAd!=null){
|
||||||
mAd.showNativeBannerInLines(trPage.getNativeBannerHeight(),(int)y);
|
mAdHeight=trPage.getNativeBannerHeight();
|
||||||
|
mAdY=(int)y;
|
||||||
|
mAdType =AdTpye.NATIVEINLINES;
|
||||||
|
// mAd.showNativeBannerInLines(trPage.getNativeBannerHeight(),(int)y);
|
||||||
}
|
}
|
||||||
y+=trPage.getNativeBannerHeight() +m_fontSize;
|
y+=trPage.getNativeBannerHeight() +m_fontSize*1.1;
|
||||||
Log.d(TAG, String.format("onDraw showNativeBannerInLines : lineno %s,strline %s ",lineNo,strLine));
|
Log.d(TAG, String.format("onDraw showNativeBannerInLines : lineno %s,strline %s ",lineNo,strLine));
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
|
@ -1085,8 +1106,11 @@ private void hideSysUI(){
|
||||||
|
|
||||||
float adHeight = mHeight -y - space -marginHeight-statusMarginBottom;
|
float adHeight = mHeight -y - space -marginHeight-statusMarginBottom;
|
||||||
float adY =y +space;
|
float adY =y +space;
|
||||||
if(showAd && trPage.getNativeBannerHeight()==0) {
|
if(mAdHeight ==0 && showAd ) {
|
||||||
showAd((int) adHeight, (int) adY);
|
mAdY=(int)adY;
|
||||||
|
mAdHeight =(int) adHeight;
|
||||||
|
mAdType =AdTpye.CHAPTEREND;
|
||||||
|
// showAd((int) adHeight, (int) adY);
|
||||||
Log.d(TAG, "loadBannerAd: AD is requested, adHeight "+adHeight);
|
Log.d(TAG, "loadBannerAd: AD is requested, adHeight "+adHeight);
|
||||||
}
|
}
|
||||||
// Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom));
|
// Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom));
|
||||||
|
@ -1176,13 +1200,24 @@ private void hideSysUI(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showAd(int adHeight,int adY) {
|
public void showAd(){
|
||||||
|
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s",mAdType));
|
||||||
|
if(mAdType ==AdTpye.TOPBANNER){
|
||||||
|
mAd.showTopBanner(mAdHeight,mAdY);
|
||||||
|
}else if(mAdType == AdTpye.NATIVEINLINES){
|
||||||
|
mAd.showNativeBannerInLines(mAdHeight,mAdY);
|
||||||
|
}else if(mAdType == AdTpye.CHAPTEREND){
|
||||||
|
mAd.showNativeBannerInLines(mAdHeight,mAdY);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private void showStatusAd(int adHeight,int adY) {
|
||||||
|
|
||||||
boolean showAd = showingStatusAd || getCurrentPage()==null || getCurrentPage().getPageNo() > 1;
|
boolean showAd = showingStatusAd || getCurrentPage()==null || getCurrentPage().getPageNo() > 1;
|
||||||
|
|
||||||
// boolean showAd =true;
|
// boolean showAd =true;
|
||||||
if (mAd != null) {
|
if (mAd != null) {
|
||||||
mAd.showAd(showAd,adHeight, adY);
|
mAd.showStatusAd(showAd,adHeight, adY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -91,31 +91,36 @@
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/frmAD"
|
android:id="@+id/frmAD"
|
||||||
android:visibility="invisible"
|
android:visibility="visible"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
android:id="@+id/native_banner_container_in_lines"
|
||||||
style="@style/frmBannerContainer"
|
style="@style/frmBannerContainer"
|
||||||
android:layout_height="@dimen/nativeBannerHeight"
|
android:layout_height="@dimen/nativeBannerHeight"
|
||||||
android:id="@+id/native_banner_container_in_lines"/>
|
android:visibility="visible"
|
||||||
<FrameLayout
|
/>
|
||||||
|
<!-- <FrameLayout
|
||||||
|
android:id="@+id/top_banner_container"
|
||||||
style="@style/frmBannerContainer"
|
style="@style/frmBannerContainer"
|
||||||
android:layout_height="@dimen/topBannerHeight"
|
android:layout_height="@dimen/topBannerHeight"
|
||||||
android:id="@+id/top_banner_container"
|
|
||||||
android:visibility="invisible"
|
android:visibility="visible"
|
||||||
/>
|
/>
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
android:id="@+id/banner_container"
|
||||||
style="@style/frmBannerContainer"
|
style="@style/frmBannerContainer"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/banner_container"
|
|
||||||
android:visibility="invisible"
|
android:visibility="visible"
|
||||||
/>
|
/>-->
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
android:id="@+id/native_banner_container"
|
||||||
style="@style/frmBannerContainer"
|
style="@style/frmBannerContainer"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:id="@+id/native_banner_container"
|
|
||||||
android:visibility="invisible"
|
android:visibility="visible"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
|
@ -106,17 +106,13 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-files" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res_stripped" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/resources" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/resources" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
||||||
|
@ -126,7 +122,6 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
|
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
||||||
|
|
Loading…
Reference in New Issue