我正在将adMob横幅成功添加到我的应用中。出现横幅时,我需要获取其高度以调整所有布局元素的大小。我正在使用正确触发的事件onReceivedAd。但是,alturaBanner
=0。那么,如何获取其高度?谢谢。
/** Called when an ad is received. */
@Override
public void onReceiveAd(Ad ad)
{
adView.setVisibility(View.VISIBLE);
int alturaBanner = adView.getHeight();
RelativeLayout.LayoutParams params1 = (android.widget.RelativeLayout.LayoutParams) browse2
.getLayoutParams();
params1.setMargins(0, alturaBanner, 0, 0);
Log.d(LOG_TAG, "onReceiveAd");
Toast.makeText(this, "onReceiveAd", Toast.LENGTH_SHORT).show();
}
在准备视图之前获取视图的高度将始终返回0。无论您使用哪种设备/屏幕,都使用下一个代码来获取正确的大小:
private static void runJustBeforeBeingDrawn(final View view, final Runnable runnable)
{
final ViewTreeObserver vto = view.getViewTreeObserver();
final OnPreDrawListener preDrawListener = new OnPreDrawListener()
{
@Override
public boolean onPreDraw()
{
runnable.run();
final ViewTreeObserver vto = view.getViewTreeObserver();
vto.removeOnPreDrawListener(this);
return true;
}
};
vto.addOnPreDrawListener(preDrawListener);
}
在给定的runnable内部,您可以查询视图的实际大小。
或者,可以根据需要使用addOnGlobalLayoutListener而不是addOnPreDrawListener。
另一种方法是使用onWindowFocusChanged(并检查hasFocus ==
true),但这并不总是最好的方法(仅用于创建简单视图,而不用于动态创建)
编辑:替代runJustBeforeBeingDrawn:https
:http://codingdict.com/questions/111280
我从实施了AdMobhttps://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start?hl=en_US其在测试期间运行良好。 我以为从Play商店下载时,此横幅添加将被实际广告替换,但这并没有发生! 如何让它发生? 我错过了什么吗? 我该怎么办?
我想显示我的活动广告。为此,我在manifest上添加了下一行: 关于活动xml有: 有什么建议吗?
admob文档中写道: 广告单元ID是应用程序中显示广告的位置的唯一标识符。为应用程序将执行的每个活动创建一个广告单元。例如,如果你有一个包含两个活动的应用程序,每个活动都显示一个横幅,那么你需要两个广告单元,每个广告单元都有自己的ID。AdMob广告单元ID的格式为ca-app-pub-xxxxxxxxxx/nnnnnnnn。 举个例子: 我有一些活动将使用横幅广告。对于每个横幅,我肯定会使用不
1. 包含头文件 #import <AdHubSDK/AdHubSDK.h> 2. AdHubBannerView 的创建和初始化 在需要导入广告的ViewController头文件中导入头文件并声明实例以及声明代理 #import <AdHubSDK/AdHubSDK.h> @interface AdHubBannerViewController ()<AdHubBannerViewDele
我正在尝试使用Burstly为Android创建横幅,但出现以下错误: java.lang.RuntimeException:无法获取提供程序com.greystripe.android.sdk。AdContentProvider:java.lang.ClassNotFoundException:com.greystripe.android.sdk。加载程序dalvik.system.PathCl
问题内容: 我正在我的android设备上测试adMob,并在获取说明文件之后,尝试获取执行adRequest的设备ID。但是,我无法在logCat中找到设备ID!我做错了什么? 编辑:这不是重复的,其他帖子中的那些方法对我不起作用。 问题答案: final TelephonyManager tm =(TelephonyManager)getBaseContext().getSystemServi