91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個android應用效果開發引發的慘案(android Home按鍵)

發布時間:2020-07-09 22:23:59 來源:網絡 閱讀:686 作者:滴掉ANDROID 欄目:移動開發
   看電影的時候,想必大家經常會在電影開場的時候看見一段故事梗概的介紹,其中有一種顯示的效果是一個字一個字先后順序出現在屏幕上的,并且每出現一個字,還有一個鍵盤打字的聲音出現。這個在android上面怎么做呢?
最近做的一個游戲,用到了這個效果,我是這樣做的。
首先,重寫了一個SurfaceView。在這個SurfaceView里面去顯示我的這段故事梗概的文字。那如何去實現按照順序一個字一個字顯示出來呢?Thread 首當其沖想到的就是他了。
開一個線程去做這個事情,每顯示一個字,就讓線程sleep一下,然后再顯示一個字,最后直到顯示了所有的字。這個時候就釋放這個線程。
那具體怎么做呢?下面一步一步來:(由于代碼太多,我只貼重要的核心代碼)
第一步:
        重寫一個自己的Thread 命名為MyThread。
        MyThread 的run方法實現:
                                 public void run() {
                                                          while(my_thread_runing){ // 這里my_thread_runing 是一個boolean變量,用                                                                                                           //于控制線程是否運行
                                                               if(play_text_all_nums > play_text_nums && holder != null)
                                                                    {//play_text_all_nums  代表所有顯示字的數量。play_text_nums  代表                                                                          //當前顯示的字數
                                                                            get_the_main_explain_currtext(); //計算出當前顯示的那些字
                                                                            Draw_the_main_explain_text(holder);//顯示出這些字
                                                                            synchronized (this) {  
                                                                           try {  
                                                                                           Thread.sleep(300);
                                                                                  } catch (InterruptedException e) {  
                                                                              e.printStackTrace();  
                                                                           }  
                                                                       }
                                                                 }
                                                            else
                                                               {//否則停止線程
                                                                   my_thread_runing = false;
                                                                   first_into = false;
                                                                   if(my_thread != null) my_thread.interrupt();
                                                                   }

                                                           }
                                            }

第二步:解釋則個函數的實現get_the_main_explain_currtext(); //計算出當前顯示的那些字

            首先:由字符串ID取出所有的字(這里這個字符串有一個特點:字與字間有一個空格),然后計算出一個有多少個字play_text_all_nums
             然后:每一次取出需要顯示的字裝載到一個新的字符串變量里面String str_text_curr;

OK。這樣就實現了。下面問題來了。
當正在一個個顯示字的時候,按home按鍵退出,然后在進入這個應用時候!可能出現一個問題:那就是  MyThread這個線程跑不起來。
因為這一次進入 MyThread根本沒有start。當然,這里不是討論為什么出現這個問題。而是想說home按鍵。網上有大量的人詢問如何屏蔽home按鍵這個時間。其實google是沒有開放home按鍵事件,也就是這個按鈕的事件消息不會上傳到APP通知我們的。既然google沒有開放,我認為大家還是不要這么去做,畢竟google這么去做事有他的優點的,前不久,我去網上下了一個應用,結果這個應用跑起來非常慢,我按返回按鍵沒有反應,結果是我狂試了所有能按的按鍵和觸摸屏,就是退不出來,唯一的辦法就把手機的電池給拿掉,從新開機。在這里我非常希望大家不要去把原本好好的android系統給搞亂了。
那你說,我要解決問題怎么辦,你又要我不要亂改系統原來的設計。我覺得辦法很多,只要你想一定可以搞定的。 看看上面的代碼,我還加了這個Boolean變量first_into = false; 用他也是可以解決問題的!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞金市| 阿拉尔市| 广灵县| 浠水县| 沾化县| 如东县| 南丰县| 花莲市| 华容县| 富阳市| 鹰潭市| 敦化市| 宜兰县| 邯郸市| 诏安县| 永福县| 延边| 航空| 安吉县| 巴中市| 安乡县| 神农架林区| 西和县| 天镇县| 枝江市| 阿尔山市| 焦作市| 潮安县| 建始县| 赣州市| 巩义市| 浪卡子县| 诸城市| 汨罗市| 凤城市| 永寿县| 乌鲁木齐县| 修水县| 西安市| 平顶山市| 杭锦旗|