Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7|回复: 7
打印 上一主题 下一主题

修改屏幕转向错乱的问题

[复制链接]

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
跳转到指定楼层
楼主
发表于 2016-5-4 16:22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1,WMS修改
    private final void performLayoutLockedInner(final DisplayContent displayContent,
                                    boolean initial, boolean updateInputWindows) {
        if (!displayContent.layoutNeeded) {
            return;
        }
        displayContent.layoutNeeded = false;
        WindowList windows = displayContent.getWindowList();
        boolean isDefaultDisplay = displayContent.isDefaultDisplay;

        DisplayInfo displayInfo = displayContent.getDisplayInfo();
                Slog.i("zcfdebug","the mRotation "+mRotation);        //zcfdebug++
//        final int dw = displayInfo.logicalWidth/2;        //zcfdebug
//        final int dh = displayInfo.logicalHeight;

//zcfdebug++<<
        int dw=displayInfo.logicalWidth;        //zcfdebug
        int dh=displayInfo.logicalHeight;
                if(mRotation==0){
                dw = displayInfo.logicalWidth/2;
                dh = displayInfo.logicalHeight;
                }else

                if(mRotation==3){
                dw = displayInfo.logicalWidth;
                dh = displayInfo.logicalHeight/2;
                }

//zcfdebug>>++


2,WM修改
回复

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
沙发
 楼主| 发表于 2016-5-4 16:23:50 | 只看该作者
根据debug发现,显示宽度变成了415了,下面应该如何解决这个问题呢?
I/zcfdebug(  833): the displayWidth is 415
I/zcfdebug(  833): the displayHeight is 1080
明显是宽搞反了导致的问题。
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
板凳
 楼主| 发表于 2016-5-4 16:39:28 | 只看该作者
我们需要禁止APP对于屏幕的旋转,再WMS中
    boolean updateOrientationFromAppTokensLocked(boolean inTransaction) {
        long ident = Binder.clearCallingIdentity();
        try {
            int req = getOrientationFromWindowsLocked();
            if (req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
                req = getOrientationFromAppTokensLocked();
            }

            if (req != mForcedAppOrientation) {
                //zcfdebug-- mForcedAppOrientation = req;
                //send a message to Policy indicating orientation change to take
                //action like disabling/enabling sensors etc.,
                mPolicy.setCurrentOrientationLw(req);
                if (updateRotationUncheckedLocked(inTransaction)) {
                    // changed
                    return true;
                }
            }

            return false;
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
地板
 楼主| 发表于 2016-5-4 17:12:49 | 只看该作者
+ Layer 0x55a0094170 (com.bobo.splayer/com.bobo.splayer.modules.mainpage.userInterface.GuideActivity)
  Region transparentRegion (this=0x55a0094350, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a0094180, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=    21010, pos=(0,0), size=( 960,1080), crop=(   0,   0, 960,1080), isOpaque=1, invalidate=1, alpha=0xff, flags=0x00000003, tr=[1.00, 0.00][0.00, 1.00]
      client=0x559ffed860
      format= 1, activeBuffer=[1080x 960:1088,  1], queued-frames=0, mRefreshPending=0
      mSecure=0, mProtectedByApp=0, mFiltering=0, mNeedsFiltering=0
            mTexName=8 mCurrentTexture=2
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0x7
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[960x1080], default-format=1, transform-hint=04, FIFO(0)={}
             this=0x55a0074810 (mConsumerName=com.bobo.splayer/com.bobo.splayer.modules.mainpage.userInterface.GuideActivity, mConnectedApi=1, mConsumerUsageBits=0x900, mOverrideMaxBufferCount=0, mId=13, mPid=213, producer=[2116:com.bobo.splayer], consumer=[213:/system/bin/surfaceflinger])
             [00:0x559ffa8b00] state=FREE    , 0x559feadb20 [1080x 960:1088,  1]
             [01:0x559fec9470] state=FREE    , 0x559feadbc0 [1080x 960:1088,  1]
            >[02:0x559fec9560] state=ACQUIRED, 0x559feac990 [1080x 960:1088,  1]
                *BufferQueueDump mIsBackupBufInited=0, mAcquiredBufs(size=1), mMode=TRACK_CONSUMER
                 [00] handle=0x559feac990, fence=0x559feaca90, time=0x30784cb6f7
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
5#
 楼主| 发表于 2016-5-4 17:14:44 | 只看该作者
这个问题好像和那个电话问题是一样的,都是上面有一个白条的存在。
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
6#
 楼主| 发表于 2016-5-4 17:20:27 | 只看该作者
目前看起来好像是statusbar的位置和大小不对导致的。
下面就看看在哪里设置statusbar的地方了。
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
7#
 楼主| 发表于 2016-5-4 17:50:47 | 只看该作者
+ Layer 0x55bf84fdf0 (com.bobo.splayer/com.bobo.splayer.modules.mainpage.userInterface.GuideActivity)
  Region transparentRegion (this=0x55bf84ffd0, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55bf84fe00, count=1)
    [  0,   0, 960, 1080]
      layerStack=   0, z=    21010, pos=(0,0), size=( 960,1080), crop=(   0,   0, 960,1080), isOpaque=1, invalidate=0, alpha=0xff, flags=0x00000002, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55bf8a6c80
      format= 1, activeBuffer=[1080x 960:1088,  1], queued-frames=0, mRefreshPending=0
      mSecure=0, mProtectedByApp=0, mFiltering=0, mNeedsFiltering=0
            mTexName=11 mCurrentTexture=1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0x7
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[960x1080], default-format=1, transform-hint=04, FIFO(0)={}
             this=0x55bf8b4fb0 (mConsumerName=com.bobo.splayer/com.bobo.splayer.modules.mainpage.userInterface.GuideActivity, mConnectedApi=1, mConsumerUsageBits=0x900, mOverrideMaxBufferCount=0, mId=13, mPid=210, producer=[2324:com.bobo.splayer], consumer=[210:/system/bin/surfaceflinger])
             [00:0x55bf710510] state=FREE    , 0x55bf89fba0 [1080x 960:1088,  1]
            >[01:0x55bf89e6e0] state=ACQUIRED, 0x55bf8518d0 [1080x 960:1088,  1]
             [02:0x55bf710380] state=FREE    , 0x55bf710470 [ 960x1080: 960,  1]
                *BufferQueueDump mIsBackupBufInited=0, mAcquiredBufs(size=1), mMode=TRACK_CONSUMER
                 [00] handle=0x55bf8518d0, fence=0x55bf7853b0, time=0x1f7d46108a
可以看出来3D播播这个程序不对头,开始地址应该是0,260,但是目前不是的。
回复 支持 反对

使用道具 举报

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
8#
 楼主| 发表于 2016-5-4 18:09:28 | 只看该作者
这一次是不是一个surfaceview层呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2025-12-15 02:01 , Processed in 0.015860 second(s), 10 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表