React Native Android雜記

  1. 集成到現有Android工程的時候, 報錯: Error: Requiring module "8" which threw an exception. 后來發現這篇文章http://www.lxweimin.com/p/d63c9a22973d . 沒有按照官方教程, 而是新建了一個AwesomeProject(react-native init AwesomeProject), 將node_modules和package.json拷貝過來, 就搞定了.

  2. 做適配的時候,由于設計師只出iPhone6尺寸的設計圖,于是iOS使用的方式是以寬度為基準進行等比縮放。在React Native也使用了這種方法。字體也是通過fontSize乘以寬度比系數。在大多數安卓手機下沒有問題,但是發現在LG某款手機下,卻出現了一個奇怪的現象——字體比一般的大。后來發現是這個原因:安卓有個概念是fontScale,代表字體比例,iOS并沒有這個概念。在Dimensions.get('window')的結果中,iOS只有width,height和scale。這個scale代表的是像素密度,即一個dp下的像素個數。因此,可以理解為iOS默認所謂的fontScale就是scale。
    將Dimensions.get('window')結果打印,如下:

機型 屏幕寬 屏幕高 scale fontScale
ip5s 320 568 2 *
ip6/6s 375 667 2 *
ip6p 414 736 3 *
三星note3 360 640 3 3
nexus6 411 683 3.5 3.5
三星s4 360 640 3 3
LG nexus5 360 592 3 3.4499

上面表格中,安卓手機的機型名字可能不一定對(媽蛋我是iOS開發),要表達的意思就是:你看上面那個LG的手機,scale和fontScale不一樣,這樣就會導致,同樣的fontSize是13,在LG手機上,字體就會顯示的大一點。
解決方案:字體等比縮放再乘以一個scale/fontScale的字數就好了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 本文旨在指導React Native初學者如何使用React Native初步構建Android應用。在看本文之前...
    KenChoi閱讀 4,491評論 0 16
  • 人類誕生是地球上最偉大事件。可是人類是怎么來的?我們是誰?我們要到哪兒去? 本世紀最大的科學發現之一,就是人類起源...
    量子哥閱讀 1,639評論 5 12
  • 一 視圖控制器1.1什么是視圖控制器(UIViewController)?為什么使用視圖控制器?iOS應用由于設備...
    037e3257fa3b閱讀 211評論 0 0
  • tj養了只貓,但是養伐養伐就會到二維動畫空間里去,自己也變成動畫片的Q版人物,能量是通過洗衣機的管子傳遞的。。。然...
    錦毛兔白玉瓜閱讀 145評論 0 0