update ad

This commit is contained in:
mwang 2019-06-04 23:51:07 +08:00
parent f823f19565
commit ad7ed7317d
7 changed files with 77 additions and 21 deletions

View File

@ -496,7 +496,11 @@ public abstract class Activity_base extends AppCompatActivity {
}); });
} }
//-------------native toutiao ad //-------------native toutiao ad
void loadNativeBannerAd(FrameLayout bannerContainer,String codeId) { void loadNativeBannerAd(FrameLayout bannerContainer,String codeId) {
loadNativeBannerAd(bannerContainer,codeId,690,388);
}
void loadNativeBannerAd(FrameLayout bannerContainer,String codeId,int width,int height) {
//step4:创建广告请求参数AdSlot,注意其中的setNativeAdtype方法具体参数含义参考文档 //step4:创建广告请求参数AdSlot,注意其中的setNativeAdtype方法具体参数含义参考文档
if(!Constants.SHOWAD || getTTAdNative()==null ){ if(!Constants.SHOWAD || getTTAdNative()==null ){
@ -506,7 +510,7 @@ public abstract class Activity_base extends AppCompatActivity {
final AdSlot adSlot = new AdSlot.Builder() final AdSlot adSlot = new AdSlot.Builder()
.setCodeId(codeId) .setCodeId(codeId)
.setSupportDeepLink(true) .setSupportDeepLink(true)
.setImageAcceptedSize(690, 388) .setImageAcceptedSize(width, height)
.setNativeAdType(AdSlot.TYPE_BANNER) //请求原生广告时候请务必调用该方法设置参数为TYPE_BANNER或TYPE_INTERACTION_AD .setNativeAdType(AdSlot.TYPE_BANNER) //请求原生广告时候请务必调用该方法设置参数为TYPE_BANNER或TYPE_INTERACTION_AD
.setAdCount(1) .setAdCount(1)
.build(); .build();

View File

@ -124,8 +124,10 @@ public class ReadActivity extends Activity_base implements AdInterface {
@BindView(R.id.appbar) @BindView(R.id.appbar)
AppBarLayout appbar; AppBarLayout appbar;
// @BindView(R.id.banner_container)
// FrameLayout mBannerContainer; @BindView(R.id.top_banner_container)
FrameLayout mTopBannerContainer;
@BindView(R.id.imgLoading) @BindView(R.id.imgLoading)
pl.droidsonroids.gif.GifImageView imgLoading; pl.droidsonroids.gif.GifImageView imgLoading;
@ -1005,6 +1007,22 @@ public class ReadActivity extends Activity_base implements AdInterface {
} }
*/ */
@Override
public void showTopBanner( int adHeight,int adY) {
hideSystemUI();
mTopBannerContainer.setVisibility(View.GONE);
if(adHeight<=0){
return;
}
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();
loadBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, 690,adHeight);
// loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID, 304,200);
params.setMargins(20, adY-10, 20, 10);
params.width =-1;
mTopBannerContainer.setLayoutParams(params);
mTopBannerContainer.setVisibility(View.VISIBLE);
}
final int contentAdHight=80; final int contentAdHight=80;
@ -1024,6 +1042,11 @@ public class ReadActivity extends Activity_base implements AdInterface {
return; return;
} }
if(adHeight >contentAdHight){ if(adHeight >contentAdHight){
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mBannerContainer.getLayoutParams(); FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mBannerContainer.getLayoutParams();

View File

@ -7,6 +7,7 @@ public interface AdInterface {
* @param adY * @param adY
*/ */
public void showAd(boolean showAd,int height,int adY); public void showAd(boolean showAd,int height,int adY);
public void showTopBanner(int height,int adY);
public void hideSystemUI(); public void hideSystemUI();
public void showRefresh(int visible); public void showRefresh(int visible);
public void showProgressbar(boolean dismissAble,String msg); public void showProgressbar(boolean dismissAble,String msg);

View File

@ -19,6 +19,8 @@ public class Constants {
public static int AD_SPLASH_PAGES = 15; public static int AD_SPLASH_PAGES = 15;
public static int SCREEN_HEIGHT_PIX =1920 ; public static int SCREEN_HEIGHT_PIX =1920 ;
public static int SCREEN_WIDTH_PIX = 1080; public static int SCREEN_WIDTH_PIX = 1080;
public static int AD_CHAPT_TOP_BANNER_HEIGHT=200;
public static int AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT=1; //每几页show topbanner
public static long LAST_G = 0;//主目录API上次访问时间 public static long LAST_G = 0;//主目录API上次访问时间
public static long MAXAGE_G = 3600;//主目录API上次访问时间 public static long MAXAGE_G = 3600;//主目录API上次访问时间
public static String[] HOT_KEYS_VALUE = {}; public static String[] HOT_KEYS_VALUE = {};

View File

@ -467,7 +467,7 @@ public class PageFactory implements ChangeSource{
while(length <chars.length ) { while(length <chars.length ) {
long starttime1 = new Date().getTime(); long starttime1 = new Date().getTime();
pageNo++; pageNo++;
TRPage page = getNextChapterPage(chaptId,length); TRPage page = getNextChapterPage(chaptId,length ,pageNo);
// Log.d(TAG,"prepare book page.getBegin :" + page.getBegin()+ ",chapter length "+ mBookUtil.getChapterLen()); // Log.d(TAG,"prepare book page.getBegin :" + page.getBegin()+ ",chapter length "+ mBookUtil.getChapterLen());
// if(page.getBegin() == mBookUtil.getChapterLen() ){ //最后一页空白的情况 // if(page.getBegin() == mBookUtil.getChapterLen() ){ //最后一页空白的情况
@ -490,13 +490,17 @@ public class PageFactory implements ChangeSource{
public TRPage getNextChapterPage(int chaptId,long position){ public TRPage getNextChapterPage(int chaptId,long position,int pageNo){
mBookUtil.setPostition(chaptId,position); mBookUtil.setPostition(chaptId,position);
int topAdH =0;
if(Constants.SHOWAD && pageNo >1 && pageNo%Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT==0){
topAdH =Constants.AD_CHAPT_TOP_BANNER_HEIGHT;
}
TRPage trPage = new TRPage(); TRPage trPage = new TRPage();
trPage.setBegin(position +1); trPage.setBegin(position +1);
trPage.setTopBannerHeight(topAdH);
// Log.d(TAG,"page postion next begin:" + (position + 1) + ""); // Log.d(TAG,"page postion next begin:" + (position + 1) + "");
trPage.setLines(getNextLines(chaptId)); trPage.setLines(getNextLines(chaptId,topAdH));
// 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;
@ -896,8 +900,9 @@ private void hideSysUI(){
//上次翻书时间 //上次翻书时间
private long lastPageTime; private long lastPageTime;
public void onDraw(Bitmap bitmap,List<String> m_lines,Boolean updateChapter,Boolean showAd) { public void onDraw(Bitmap bitmap,TRPage trPage,Boolean updateChapter,Boolean showAd) {
hideSysUI(); hideSysUI();
List<String> m_lines = trPage.getLines();
// mAd.showRefresh(View.GONE); // mAd.showRefresh(View.GONE);
if(m_lines.size()==0 ){ if(m_lines.size()==0 ){
return; return;
@ -987,9 +992,16 @@ private void hideSysUI(){
paragraphSpace = prate * lineSpace; paragraphSpace = prate * lineSpace;
if(mAd!=null){
mAd.showTopBanner(trPage.getTopBannerHeight(),(int)(marginHeight + space));
}
if (m_lines.size() > 0) { if (m_lines.size() > 0) {
float y = marginHeight;
float y = marginHeight +trPage.getTopBannerHeight();
String lastLine =""; String lastLine ="";
for (String strLine : m_lines) { for (String strLine : m_lines) {
// if(strLine.endsWith("\n")) { // if(strLine.endsWith("\n")) {
@ -1144,19 +1156,19 @@ private void hideSysUI(){
return; return;
} }
if(mStatus ==Status.LASTPAGE) { if(mStatus ==Status.LASTPAGE) {
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),true,false); onDraw(mBookPageWidget.getCurPage(),currentPage ,true,false);
if(mBookPageWidget==null){ if(mBookPageWidget==null){
return; return;
} }
Log.d(TAG, " prePage() onDraw: mBookPageWidget.getNextPage() "); Log.d(TAG, " prePage() onDraw: mBookPageWidget.getNextPage() ");
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),true,true); onDraw(mBookPageWidget.getNextPage(),currentPage ,true,true);
}else{ }else{
if(mBookPageWidget==null){ if(mBookPageWidget==null){
return; return;
} }
Log.d(TAG, " prePage() onDraw: mBookPageWidget.getNextPage() "); Log.d(TAG, " prePage() onDraw: mBookPageWidget.getNextPage() ");
currentPage = getPrePage(); currentPage = getPrePage();
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),true,true); onDraw(mBookPageWidget.getNextPage(),currentPage ,true,true);
} }
} }
@ -1232,7 +1244,7 @@ private void hideSysUI(){
return; return;
} }
Log.d(TAG, "nextPage() onDraw: mBookPageWidget.getCurPage() "); Log.d(TAG, "nextPage() onDraw: mBookPageWidget.getCurPage() ");
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),true,false); onDraw(mBookPageWidget.getCurPage(),currentPage ,true,false);
prePage = currentPage; prePage = currentPage;
currentPage = getNextPage(); currentPage = getNextPage();
// currentPage = currentChaptPages.get(currentPage.getPageNo()-1); // currentPage = currentChaptPages.get(currentPage.getPageNo()-1);
@ -1240,7 +1252,7 @@ private void hideSysUI(){
return; return;
} }
Log.d(TAG, "nextPage() onDraw: mBookPageWidget.getNextPage() "); Log.d(TAG, "nextPage() onDraw: mBookPageWidget.getNextPage() ");
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),true,true); onDraw(mBookPageWidget.getNextPage(),currentPage ,true,true);
Log.d("nextPage","nextPagenext"); Log.d("nextPage","nextPagenext");
HashMap<String,String> map = new HashMap<String,String>(); HashMap<String,String> map = new HashMap<String,String>();
@ -1487,7 +1499,7 @@ private void hideSysUI(){
} }
boolean showChapTitleOnTopWhenNextPage =false; boolean showChapTitleOnTopWhenNextPage =false;
public List<String> getNextLines(int chaptId){ public List<String> getNextLines(int chaptId,int topAdHeight){
List<String> lines = new ArrayList<>(); List<String> lines = new ArrayList<>();
float width = 0; float width = 0;
float height = 0; float height = 0;
@ -1497,7 +1509,8 @@ private void hideSysUI(){
if(mBookUtil.getPosition(chaptId)==0) { if(mBookUtil.getPosition(chaptId)==0) {
lines.add("\n");//lines.add("\n"); lines.add("\n");//lines.add("\n");
} }
calculateLineCount();
calculateLineCount(topAdHeight);
while (mBookUtil.next(true,chaptId) != -1){ while (mBookUtil.next(true,chaptId) != -1){
char word = (char) mBookUtil.next(false,chaptId); char word = (char) mBookUtil.next(false,chaptId);
// Log.d(TAG, String.format(" loadchapt getNextLines() chaptId %s, word '%s'", chaptId,word )); // Log.d(TAG, String.format(" loadchapt getNextLines() chaptId %s, word '%s'", chaptId,word ));
@ -1517,7 +1530,7 @@ private void hideSysUI(){
line = ""; line = "";
width = 0; width = 0;
height += paragraphSpace - lineSpace; height += paragraphSpace - lineSpace;
calculateLineCount(height); calculateLineCount(topAdHeight+height);
if (lines.size()>= mLineCount +firstPageLine){ if (lines.size()>= mLineCount +firstPageLine){
// Log.d(TAG,String.format("lines count limit a %s,lines size %s",mLineCount,lines.size())); // Log.d(TAG,String.format("lines count limit a %s,lines size %s",mLineCount,lines.size()));
line =""; line ="";
@ -1726,9 +1739,9 @@ private void hideSysUI(){
return; return;
} }
Log.d(TAG, "currentPage onDraw: mBookPageWidget.getCurPage() "); Log.d(TAG, "currentPage onDraw: mBookPageWidget.getCurPage() ");
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),updateChapter,false); onDraw(mBookPageWidget.getCurPage(),currentPage ,updateChapter,false);
Log.d(TAG, "currentPage onDraw: mBookPageWidget.getNextPage() "); Log.d(TAG, "currentPage onDraw: mBookPageWidget.getNextPage() ");
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),updateChapter,true); onDraw(mBookPageWidget.getNextPage(),currentPage ,updateChapter,true);
} }
//更新电量 //更新电量

View File

@ -12,6 +12,7 @@ public class TRPage {
private boolean isLastPage; private boolean isLastPage;
private boolean isFirstPage; private boolean isFirstPage;
private List<String> lines = new ArrayList<>(); private List<String> lines = new ArrayList<>();
private int topBannerHeight=0;
public TRPage( ){ public TRPage( ){
} }
@ -19,6 +20,13 @@ public class TRPage {
lines.add(line); lines.add(line);
} }
public int getTopBannerHeight() {
return topBannerHeight;
}
public void setTopBannerHeight(int topBannerHeight) {
this.topBannerHeight = topBannerHeight;
}
public int getChapterNo() { public int getChapterNo() {
return chapterNo; return chapterNo;

View File

@ -75,7 +75,12 @@
</LinearLayout>--> </LinearLayout>-->
<FrameLayout
style="@style/frmBannerContainer"
android:layout_height="wrap_content"
android:id="@+id/top_banner_container"
android:visibility="gone"
/>
<FrameLayout <FrameLayout
style="@style/frmBannerContainer" style="@style/frmBannerContainer"
android:layout_height="wrap_content" android:layout_height="wrap_content"