Android游戏开发显示屏旋转难题周密解决

做游戏Android上的嬉戏开发也有一年多了,纵然并未什么样奥秘的视角,但就赶上的题材及缓解方案做下记录

图片 1

俺们的嬉戏,横屏的棋牌游戏,一直是锁定横屏的一个主旋律运行,有一天,项目CEO找到我,想让游玩像一些IPhone游戏一样,在转动屏幕的时候按照动力举办旋转,在锁定方向的时候又能固定一个势头,也就是能根据用户选拔在横屏方向拓展锁定和旋转

自然,我信心满满的答应了,感觉对于一个以Android起家的自身来说那并不算什么,五秒钟搞定

张小兵放学回家,见家里仍然繁华,爸妈的麻将子满天飞,不禁年少老成的叹了口气,走近手气正好的生父,向他要钱。结果张四叔一个手掌刮下来,怒吼道,“你个蠢蛋!滚蛋去!别坏了老子的手气。”然后扔出一张皱巴巴的货币。

结果一个小时过去了,并不曾找到完美的化解方案,在Android的manifest.xml做安顿是不可行的

张小兵噙着泪,飞速跑出家门,跑到楼下。他必须要快点,快点买到辣条,来安慰悲伤的心,否则眼泪就会掉下来。他才不要让祥和变成掉眼泪的男孩,小花曾说过,男子汉流血不流泪。固然他还不驾驭什么是爷们。

由此自己一番百度和看Android文档,我才发觉,Android对旋转屏,更加是只有横屏或者竖屏虽引力旋转的支撑是到Android4.3.1才有完美支持的

他毕竟跑到楼下,站在了铺面里面。CEO问他买什么样,他把手里的五毛钱攥得严俊的,对着货架上的辣条,不受控制地咽了咽口水,小声说:“我想买包……”话未说完,瞥见小花欢腾的进去了,并且看见他,朝她走了恢复生机

unspecified - 默认值,由系统选择显示方向
landscape   - 橫向
portrait    - 纵向
reverseLandscape    - 反横向(API >= 9)
reversePortrait     - 反纵向(API >= 9)
user        - 用户当前的首选方向
behind      - 与Activity堆栈下的方向相同
sensor      - 根据物理传感器方向3/4个方向(取决于设备)
fullSensor  - 根据物理传感器方向4个方向
nosensor    - 不按照物理传感器方向,除此之外与"unspecified"无区别
sensorLandscape     - 按照物理传感器,只在横向(2个方向)进行翻转(API >= 9)
sensorPortrait      - 按照物理传感器,只在纵向(2个方向)进行翻转(API >= 9)
userLandscape       - 按照用户选择,锁定一个横向,或者按照物理传感器进行横向的翻转(API >= 18)
userPortrait        - 按照用户选择,锁定一个纵向,或者按照物理传感器进行纵向的翻转(API >= 18)
fullUser    - 如果用户锁定了屏幕,它与"user"作用一致,如果是解锁了旋转,它与"fullSensor"作用一致(API >= 18)
locked      - 锁定了屏幕当前方向(API >= 18)

“哎张小兵。”小花问:“你在那边为啥?”

但出于玩耍是要适配各种系统版本的,只在AndroidManifest.xml里安排显明只好满足部分系统要求,于是我写了上边的代码

“我。”张小兵望向小花剪得整齐的、像瀑布一样的刘海,心里一阵悸动。隔壁三姨、隔壁外婆、隔壁王二伯,都说小花长的难堪,这她固然最美观的。他说:“我买辣……”倏忽想起小花之所以拒绝三年级二班的刘畅的情书,就是他最厌恶他吃辣条配雪糕时的猖獗样,马上改口道“那一个给您!”

public class TestOrientationActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        resetScreenOrientation();
        Uri rotationUri = Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION);
        ContentResolver resolver = getApplication().getContentResolver();
        // 此处注册监听旋转设置变化
        resolver.registerContentObserver(rotationUri, true, mContentConfigObserver);
    }

    /**
     * 用于监听旋转变化
     */
    private ContentObserver mContentConfigObserver = new ContentObserver(new Handler()) {
        @Override
        public void onChange(boolean selfChange) {
            resetScreenOrientation();
        }
    };

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();
        resetScreenOrientation();
    }

    private void resetScreenOrientation() {
        // TODO Auto-generated method stub
        int orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
        int sdkInt = android.os.Build.VERSION.SDK_INT;  
        if (sdkInt >= Build.VERSION_CODES.JELLY_BEAN_MR2 /*18*/) {
            //大于JELLY_BEAN_MR2(4.3.1)版本的直接支持按照用户选择进行屏幕旋转
            //Field requires API level 18 (current min is 8): 
            orientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE;
        } else if (sdkInt >= Build.VERSION_CODES.GINGERBREAD) {
            int flag = Settings.System.getInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0);
            if (0 == flag) {
                // 屏幕旋转已经关闭,那么固定屏幕在某一个方向
                orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
            } else {
                // 屏幕旋转打开,屏幕按照sensor的参数进行旋转
                // 此参数只在GINGERBREAD(2.3.3)以上的系统支持
                //Field requires API level 18 (current min is 8): 
                orientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
            }
        } else {
            // 小于GINGERBREAD(2.3.3)版本的系统不支持屏幕旋转
            orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
        }
        int curOrientation = getRequestedOrientation();
        if (orientation != curOrientation) {
            setRequestedOrientation(orientation);
        }
    }
}

“真的吗?”小花洋洋得意,蹦蹦哒哒拿出一包蚕豆,“你怎么精通自己想吃那么些?我妈都不让,说热气。”

除此之外在2.3.3-4.3.1的片段手机监听设置改变时候会见世延迟以外,其余都是健全解决

“我也是上次听你妈念叨!”

“哦,那样啊?那就谢谢了。”小花拿着蚕豆走了。总裁问张小兵,还要不要其余。他摊开掌心里被汗水浸湿的钱,“喏,我就唯有那五毛钱了。”

九年级的结尾三回春游,不仅代表着初中生活的终止,更表示着住宿生活的发端。张小兵很是期望公公姑姑能多赢点钱,毕竟将来想一个人在夜间轻手轻脚吃点零食是件不易于的事。报名春游的那一天,亦是张小兵踏上“不归路”后回的最早的一天。他积极帮来家里的牌友倒茶,扫瓜子壳。直至伯伯赢了一圈又一圈,仍是宁静的待在旁边。或许是良心发现,张小叔醒悟过来,知道让未成年的孙子看打牌不好。豪迈地扔给他五块钱,让她买吃的去。

张小兵抱着“巨款”,直奔楼下小卖部。他要买好多好多爽口的,羡煞一众同学。可是,当她触到有辣条的那排货架,他的手终究是颤抖了。啊,梦想中的辣条啊。为了不让小花觉得她跟这几个刘畅没什么两样,他从幼儿园结束学业,就再也没吃过了。那味道、那包装,多少次,在他梦里,回翔着。

而现行,就在她前边,叫他如何能不激动吧。他到底拿到了它,却又以迅雷不掩及耳之势甩掉了它。他看见只有半张脸的小花走到了她身旁。小升初后,他向来那样的迷离,小花家是否太穷了,否则她怎么都不剪刘海。但行动不带拉人这点,照旧使得她出色崇拜他。

小花问他买哪些零食,他说:“我爸就给了自我五块钱,能买什么样啊,随便买点呗!”

“那你买哪些哟?”

“都说无论买点啦!张小兵向CEO娘眨眨眼,申明通义的总经理回答道:“你刚好买了其余零食,还想买辣条的话,五块钱是不够的。”

张小兵一听,浑身鸡皮疙瘩都竖起来,“什么人想卖辣条啊?幼稚!”他匆匆扔下五块钱,抱着老董装好的袋子,落荒而逃。

满天飞扬的、柳絮般的试卷碎纸从教学楼上空缓缓落下来,混合着张小兵的舍不得之情,飘向他梦想中的大学。三年的斗争,一朝放榜,可到头来解脱。为了庆祝高中完成学业,也为了抚慰每位同学在高考时期付出的汗水,张小兵的班老董决定来四次最终的相聚。同学们欢畅,纷纭谈道献策,最终班主管决定让大家自带食品野餐。

“诶诶张小兵!”张小兵一出教室,刘畅在他背后追喊着,问她带什么好吃的去才不会失了脸面。张小兵瞅了她几眼,仍是自顾自走掉,惹得刘畅在原地自言自语道:“我怎么总认为她对我有敌意呢。”

张小兵打篮球回家,原以为一进门,就会听到再熟稔不过的麻将声,不料家里一片乌黑。正猜忌是否老人打麻将输太多,遭高利贷的追杀。却听“啪!”地一声,灯光亮起,三叔端着蛋糕笑得前仰后合,三姨则和众多牌友在一侧拉横幅,上书:热烈庆祝我儿张小兵喜中翘楚!几分钟的功力,芸芸众生便把她包围,摔上了天。无奈天花板太低,张三伯只能暂时喊停,奖励了他五十块钱。

业主问张小兵要买什么零食去野餐,他的一颗心“突突突”地发动。他可以吐露那三个字呢,不行,因为小花又冒出了。小花剪短刘海,剪短头发,形象甚是清爽。但他却觉得他一些都不专门了,皮肤好是好,但双眼不够大、鼻子有点塌、嘴唇还有些厚。

小花说,她跟她大妈要钱时,她三姨说他上大学的费用一度够令人头疼的了,可没那么多钱让他去挥霍,气的他想哭。她说,她并不以为那是挥霍,何况饭什么的他得以友善做,她可是想要买点零食跟闺蜜们享受,哪个人知道上高校后,还有没有空子再聚。

张小兵听了,敷衍地安慰她说:“只要有心,再远的行程也阻止不住友谊。”

“可是。”小花说:“女生的友谊最难维持了。”说完,可怜兮兮的看着他。他在心中翻了个白眼,都说卖萌不丢人,可长的欠雅观的人,那就是违纪了。为了减小小花的罪行,他把50块钱给她。说:“先借你呢。饭菜我妈会给自家做的,零食什么的,我也不欣赏。”

大四挂科的那一天,张小兵第一遍和刘畅翻墙逃课,去高校就近的网吧开黑。都说不挂科不逃课的常青是不完整的,他要打不胜枚举的游艺,在网吧过夜,把他的后生版图拼凑完整。

在打游戏方面,刘畅可谓是天然异禀,不管什么游戏,他都手到擒来,杀的对方口吐白沫。而张小兵就稍显逊色了,别说大型网游,连不难的棋牌游戏他都过不了关。刘畅嘲弄他说,是否这对麻将鬼父母抱来的私生子,他立时就火了,发誓要杀刘畅个不死不休。

张小兵实在是按不动鼠标了,只好靠泡面维持生命力。他躺在卧椅上生无可恋的想,做人无趣,成绩再好又有何样用,还不如游戏里的英雄人物,三头六臂。忽闻到一股既驾驭又陌生的寓意,令他虎躯一震,从卧椅上一跃而起,朝那股味道寻去,竟是辣条。那人拿着辣条,一小根一小根的往嘴里塞,全副身心投入辣条的可口中,不可自拔。当他意识旁边的张小兵,口水早已如决堤的洪流,拱着他时时刻刻升腾,他吃吃的问要干什么。张小兵不回答,仍是望着她手里的辣条袋子,他生怕的抬了抬手腕,指向水吧的主旋律。

张小兵一步步踱到水吧,看见水吧的货架上摆满了灿烂的辣条,那一刻,他心如死灰。三伯寄给他的五百块生活费被她用四天的时刻,买游戏装备买完了。他的钱包能够说比扁担还要扁。此生,他错过了吃到辣条的末尾一遍机会。

刘畅经历一番“战斗”,趁暂时休息的功夫,眼珠子转了转,走到水吧前,拍张小兵的肩头,问要不要吃东西。张小兵回过神,眼神像是激光枪,能穿越外物的遮挡透视人心,令人内心发慌。为了掩盖自己的不自在,刘畅随手拿了包辣条,撕开就吃,“哎你究竟要不要吃啊?”几根辣条下肚,张小兵的视力彻底变成了看见骨头的狗,吓的刘畅把辣条扔给她,跑了。

“辣条,是我的辣条吗?”张小兵捧着辣条,如似无价珍宝,贪婪地咽了咽口水,眼睛发生绿光。可一个人从他面前闪过,他蔫了。是小花,小花拿着他的辣条一边吃一边问:“你也喜好吃这么些?”

“老子他妈做梦都想好吧?”张小兵愤愤的想。可他不可能说,自打小花留了中分的黑长直,她已经颇有女神范了,他不可以与系里的一众男生作对。“没有啊!”任凭一口老血梗在心间,“是,是刘畅拆的,我当然要扔掉的呀!”

经年累月的蓄势待发,终于在30岁那年获得了回报。那天,张小兵跟公司拿了年假,开车带小花回去看看双方父母。吃饭席间,老人旁敲侧击的问一对小伙准备怎么时候结婚。张小兵推辞说娃他爹三十而立,不急不急。小花的爹妈格外不顺心,他们说两家人认识也有三十几年了,小花又是从小跟在她身后长大的,他必须给人承受才是。张小兵踌躇了一会,望向一头大波浪下,尤其妩媚的小花,说吃完饭就带小花去买结婚戒指。小花乐开了怀,饭还没吃完,就拉着她去附近的金店。

进了店,妆容精致的行销小姐迎上来,问他们想买什么首饰。小花说:“其余的永不,就要钻戒,钻石戒指。”于是销售小姐引着他俩去钻石戒指的玻璃柜。小花趴在柜面上,高兴的不胜,不断指挥人拿戒指给他试。张小兵倒是兴趣索然,左右不过一对石头,又不可能当饭吃。小花试戴了诸八个,仍是不惬意。销售小姐只可以问她有没有想法,或是有没有预算。

小花摆了摆手,销售小姐拿出一个长造型的钻戒,说,“这是五千块钱的,而且足够受时下年轻男女的欢迎,寓意不忘初心。”

“不忘初心、不忘初心、不忘初心……”销售小姐的话如同一颗炸弹,瞬间爆裂,造成鲜明的复信,不断盘旋在张小兵的脑际,刺的他双耳发疼、耳膜溃烂,身子无力的倾斜。小花心神不定的扶住他问怎么了,他不说话,默默用双手撑着玻璃柜,流出两行清泪,悲痛道:“我只是想买包辣条。”

武侠江湖

琅琊令之不忘初心

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图