日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GSView

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GSView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GSView

  用了一下午和一晚上寫完了一個小DEMO,還順便研究了一下如何用手機錄GIF,手機不想root,花了點時間。

  這幾天晚上玩手機的時候,突然有一個想法,app上的title和按鈕在單手操作的時候,尤其是大屏手機,一直手按左上角返回的時候不方便,晚上躺著玩手機,尤其是側臥的時候,很不愿意用另一只手,這幾天晚上還有蚊子,只露出一直手玩手機就好了(-_-)。有什么解決辦法呢,安卓不是內置了重力感應么,使用這個功能還不用權限,可以試試。

  重力感應的核心類是SensorManager,基本上沒什么難度,實現SensorEventListener的接口,重寫onSensorChanged()和onAccuracyChanged(),主要操作在onSensorChanged()里面,onSensorChanged()可以說是時刻都在變化,注意里面不要寫一些耗時操作,不然會被調用很多次。

@Overridepublic void onSensorChanged(SensorEvent event) {if (event.sensor == null) {return;}if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {int x = (int) event.values[0];int y = (int) event.values[1];int z = (int) event.values[2];}}

  通過代碼片段,可以看到,整個重力感應的封裝很簡單,我們只要關心 event.values數組的前三個參數即可,當然了 event.values[]其實是float類型的,我們為了方便計算,轉成Int即可,除非你需要很高的精度,手機的左右側翻我們只需要關心X即可,當然這里是指豎屏狀態下,橫屏需要重新計算,當x>3&&x<-3的時候,手機其實已經明顯翻轉了,這時我們就可以進行相應的操作了,這里為了有更好看的效果,我使用了屬性動畫ValueAnimator,需要注意一點,在onSensorChanged中,會多次調用一個動畫,導致出現了鬼畜的現象,因此需要設置一個控制變量,當動畫執行后,才能再次調用。先看看效果:

  首先是向右側翻手機

  首先是向左側翻手機與之類似

  由于是在模擬器上錄制的,重力感應會有問題,就先拿click事件代替重力事件了,真機上親測沒問題。

  一旦解決了動畫多次調用的問題,就沒什么難度了,向右移動的時候,title向右移動的距離是:(屏幕的寬度-title的寬度)/2,back按鈕移動的距離是:屏幕的寬度-title的寬度-back的寬度,類似的向左移動的時候,back已經在最左邊了,移動距離為0,title移動的距離是:(屏幕寬度-title的寬度)/2-back的寬度。當手機平放的時候,記得復位。還有一點注意的是ValueAnimator.ofFloat()方法里面可以不定個float的值,沒有特殊需要,傳入一個即可,一般的getAnimatedValue時,會判斷mValues數組是否為空,如果不為空,就取第一個即可。項目待會傳到網上,代碼是很復雜。

  今天網速很好,代碼詳情:

  https://git.oschina.net/w5727/GSView.git

總結

以上是生活随笔為你收集整理的GSView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。