【问题标题】:Rotating the mopub banner 90 degrees in Android在 Android 中将 mopub 横幅旋转 90 度
【发布时间】:2015-09-07 08:00:50
【问题描述】:

我创建了一个横向的 android 应用程序,并在其中集成了 mopub 广告,我希望广告在屏幕的左侧和右侧横向运行,但是当我将 xml 布局设置为水平时,文本仍然运行从左到右,我留下了一个垂直的横幅,中间有一个小盒子。 我尝试过使用旋转动画,但是当广告旋转时,测试广告会被剪裁,并且文本甚至不会出现在横幅内。 我能想到的唯一解决方案是将活动变成纵向并旋转我的 openGL 表面,但这意味着我必须重写我的整个 openGl 代码来旋转所有内容。仅旋转相机也不起作用,因为我必须重新调整所有内容并重写我的界面代码。

有什么方法可以让 mopub 广告以纵向加载并让我的 openGL 以横向加载,或者任何我没想到的解决方案都不需要我重写所有 openGL 代码?

我找到了this,但是我正在为 android 编程并且无法理解它

我目前正在使用带有 xml 的 LinearLayout。

【问题讨论】:

    标签: android orientation mopub


    【解决方案1】:

    你可以试试 View.getMatrix()。以下代码可以解决问题:

    Matrix m = adView.getMatrix();
    m.postRotate(90);
    m.postTranslate(adView.getWidth(), 0);
    

    这假定定义了视图大小。否则,您需要一个固定值,例如 50dp,而不是 getWidth():

       float xShift = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
                  50, activity.getResources().getDisplayMetrics());
        m.postTranslate(xShift, 0);
    

    祝你好运:)

    【讨论】:

    • 我得到一个运行时错误,java.lang.IllegalStateException: Matrix can not be modified
    • 不幸的是View没有setMatrix,但是它有方法setPivotX,setPivotY,setRotation,setTranslationX,setTranslationY,你可以试试:setPivotX(width>>1); setPivotY(高度>>1); setRotation(90),这不会报错,但可能不会做你需要的。
    • 不幸的是,我遇到了与旋转动画相同的剪辑问题,感谢您的尝试
    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2016-04-15
    • 2012-04-06
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    相关资源
    最近更新 更多