阶段小练—篮球比赛计分器
階段性回顧
回顧內容:
VieModel Screen Orientation
LiveData Localization
DataBinding Vector Drawable
UI界面
由上而下解析:
第一行兩個textView 控件用于顯示隊伍 A和隊伍B
第二行兩個textView控件用于顯示兩隊的比分
中間三行Button控件用于點擊增加分數
最后一行為兩個矢量圖標/圖片按鈕,左邊用于后退一步加分操作,右邊將分數初始化為 0:0
界面字體背景優化
為方便調節字體的大小,可以創建需要的資源
分別創建了三種字體大小不同的資源,分別供應于 隊伍名、比分、按鈕的字體大小使用
為區別隊伍的劃分,改變 兩隊伍比分的字體顏色和背景
字體顏色改變:textColor
背景改變 :background
調用矢量圖形的方法
res -> new -> Vector Asset
注意:使用矢量圖形需要在 Gradle 中聲明一句話,用于上下兼容,因為在低于5.0以下不支持矢量圖
解決方法:在Gradle 中加入上圖中的話
android.defaultConfig.vectorDrawables.useSupportLibrary = true
同時,由于一會兒需要用到DataBinding,所以添加
dataBinding{
enabled true
}
最后Sync一下,不出現紅色則沒有問題
注意點: 調用 imageView或imageButton時,我們需要增加參數:contentDescription
這個參數的意義在于照顧一些生理功能有缺陷的人,如果圖片復雜,用戶色盲色弱,則這個參數可以供系統讀出來,加強用戶體驗。例如中間幾行的按鈕讀的話,就可以是 加1 加2、、、、
代碼部分
MyViewModel
創建一個New Class : MyViewModel
繼承于 ViewModel
MainActivity
將 MyViewModel 綁定進去
因為我們使用 dataBinding 所以進行如下修改
添加變量,name = “data”,類為”MyViewModel“
再次強調
Providers 已經啟用,需要采用新的方法
使用方法:首先,在build.grade中添加依賴(版本可不一樣)
implementation’androidx.lifecycle:lifecycle-extensions:2.2.0’
Sync以下,不出現紅色則沒有問題
之后,先:導入包 ->
import androidx.lifecycle.ViewModelProvider;
再:
myViewModel = new ViewModelProvider(this).get(MyViewModel.class);數據綁定
Button按鈕的數據綁定
如圖,點擊一個button控件,右鍵 -> Go to XML
添加方法進行數據綁定
android:onClick="@{()->data.aTeamAdd(1)}"
分別對與隊伍A與隊伍B加分的數據進行綁定
如上圖所示表示對于隊伍A 的加一分的數據進行綁定
同理,其他加分項進行相對應的處理
TextView的數據綁定
右鍵 -> Go to XML
進行如下修改:(函數調用方法)
android:text="@{String.valueOf(data.getaTeamScore())}"
同理,B隊伍 Score TextView數據綁定做相應的處理
Screen Orientation(屏幕旋轉)
按鈕高度以及字體大小優化
設置橫屏狀態下的布局
點擊 -> Creat Landscape Variation
看圖我們容易得到,由于我們設置的字體或邊框太大,導致橫屏狀態下,按鈕控件之間非常緊密
我們再設置一些資源供橫盤狀態下使用
按鈕高度
將豎屏狀態按鈕高度改為60sp
同時設置橫屏時的高度
并將橫屏下的按鈕高度參數設為此資源
字體大小
同理,依次配置
Localization(本地化)
進行語言支持,點擊 Default -> Edit Translations -> 點擊地球圖標 ->添加Chinese
根據需要進行相應的漢化,如圖:
注意:漢化效果的展示需要將手機換為中文環境
調試運行
豎屏狀態:
橫屏狀態
本地化模式
總結
以上是生活随笔為你收集整理的阶段小练—篮球比赛计分器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 羊驼交易系统
- 下一篇: python语言的保留字有哪些_Pyth