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)); | ||||||
|  | @ -496,12 +507,10 @@ public class PageFactory implements ChangeSource{ | ||||||
|         TRPage trPage = new TRPage(); |         TRPage trPage = new TRPage(); | ||||||
|         totalPageCnt++; |         totalPageCnt++; | ||||||
|         float bannerH = 0; |         float bannerH = 0; | ||||||
|  |       //  Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = 4; | ||||||
|         if (Constants.SHOWAD && pageNo > 1) { |         if (Constants.SHOWAD && pageNo > 1) { | ||||||
|             if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT >0 && totalPageCnt % Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == 0) { |            // Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = 1; | ||||||
|                 bannerH =  mContext.getResources().getDimension(R.dimen.topBannerHeight) +0*Constants.ONE_DP_SIZE; | 
 | ||||||
|                 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) { |             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; |                 bannerH = mContext.getResources().getDimension(R.dimen.nativeBannerHeight) + 4 * Constants.ONE_DP_SIZE; | ||||||
|                 calculateLineCount(); |                 calculateLineCount(); | ||||||
|  | @ -516,6 +525,9 @@ public class PageFactory implements ChangeSource{ | ||||||
|                 } |                 } | ||||||
|                 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); | ||||||
|  | @ -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