【问题标题】:changing admob banner size dynamically动态更改 admob 横幅大小
【发布时间】:2011-08-05 07:49:46
【问题描述】:

事情就是这样,你可能知道 Admob 有一个 AdSize.* 函数,你在其中放置 Banner 来显示横幅广告,而 AD_banner` 用于平板电脑横幅,我想要做的是将屏幕尺寸设为设备,以便我可以将其放入我的 if 语句中,然后为正确的设备放置正确的横幅,我希望我足够清楚。所以任何人都可以告诉我如何获得设备的屏幕尺寸? 感谢你 ////////// 这是我到目前为止所做的事情

     DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

       if (dm.density==DisplayMetrics.DENSITY_HIGH) {
        AdView adView = new AdView(this, AdSize.BANNER,s);
        LinearLayout layout = (LinearLayout)findViewById(R.id.admob);
        layout.addView(adView);
        adView.loadAd(new AdRequest());
       }
       if (dm.density==DisplayMetrics.DENSITY_DEFAULT || dm.density==DisplayMetrics.DENSITY_LOW ) {
             AdView adView = new AdView(this, AdSize.BANNER,s);
             LinearLayout layout = (LinearLayout)findViewById(R.id.admob);
             layout.addView(adView);
            adView.loadAd(new AdRequest());

        }
        if(dm.density==DisplayMetrics.DENSITY_MEDIUM)
        {
            AdView adView = new AdView(this, AdSize.IAB_BANNER,s);
            LinearLayout layout = (LinearLayout)findViewById(R.id.admob);
            layout.addView(adView);
            adView.loadAd(new AdRequest());

        }

【问题讨论】:

    标签: android if-statement admob banner


    【解决方案1】:

    最新的 AdMob SDK 包含 AdSize.SMART_BANNER,它可以为设备提供最佳尺寸匹配的广告。

    我自己使用的是旧版本,不知道这个功能:D

    【讨论】:

    • 太棒了,我也不知道!谢谢!
    • 但请注意,您目前无法将智能横幅与 AdMob 网络中介一起使用,您可以在 documentation 中阅读。
    • 出于这个原因,我强烈建议避免使用智能横幅;如果您后来决定使用不支持它们的广告网络进行调解,您唯一的选择就是升级应用程序代码;而且您无法保证所有用户都会使用升级后的应用,因此您可能会破坏您的广告。
    • 此外,智能横幅并非不智能,它们无法处理设备旋转,这意味着如果应用横向打开,切换到纵向后,广告会因为不适合而消失。跨度>
    【解决方案2】:

    如果您的布局是在 xml 中定义的,您可以为每个屏幕尺寸创建一个布局(layout-xlarge/mylayout.xml、layout-large/mylayout.xml、layout-normal/mylayout.xml 等...)

    更多信息在这里:http://developer.android.com/guide/practices/screens_support.html

    不要看密度,因为 10.1 英寸平板电脑的密度中等,但分辨率为 480x850 的 4.3 英寸手机密度较高。改用屏幕尺寸(xlarge large normal small)。

    如果您需要以编程方式执行此操作,您可以通过以下方式获取屏幕尺寸:

    Configuration config = activity.getResources().getConfiguration();
    int screenlayout = config.screenLayout;
    

    要进行比较,请使用 Configuration.SCREENLAYOUT_xxx 。

    【讨论】:

    • 谢谢 NitroG42 我这正是我需要的
    猜你喜欢
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多