[英]In java, how would I determine if a square is the size of a single pixel?
[英]How to determine the Pixel Unit (px, dp, etc) of a View in Java?
我正在嘗試編寫單元測試來驗證是否使用了DIP。 我能夠使用editText.getTextSize()讀取大小值,但我無法讀取文本單元(在這種情況下,它是為了確保“dp”用法)。 如果某人將文本單位從dp更改為px或任何其他單位,則測試用例將失敗。
<EditText
android:id="@+id/someId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="48dp"/>
提前致謝!
首先,永遠不要在dp
執行textSize。 他們應該總是使用sp
因此有視力問題的人可以根據需要進行擴展。
其次,為什么要為此編寫單元測試? 你在測試什么? 如果你把一個給定的大小放在它實際使用的xml中? 不,這是google在測試框架時要測試的工作。 編寫一個單元測試就可以完全浪費時間,因為它永遠不會破壞。 您是否測試某個元素是否具有特定大小? 然后測試一下,你不會測試它是否在dp
vs px
指定。
已經有lint檢查您不使用dp
作為文本大小的維度。 它會產生警告,因此不會破壞構建。 但你可以嚴格要求失敗:
lintOptions {
warningsAsErrors true
abortOnError true // Fail early.
}
@ Gabe的答案很好,你可以通過Android框架測試副作用。 如果你真的想要保護特定元素的大小是具有特殊尺寸的特殊值,那么為xml
本身添加test / lint檢查。
至於我,它沒有多大價值 - 它不會破壞功能,它增加了一致性和支持的復雜性,它增加了運行測試的時間。 您也會通過回歸測試注意到它,或者在值得的情況下,用戶會抱怨它。
一個建議 - 查看樣式和主題,不要復制粘貼文本大小和其他視圖屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.