簡體   English   中英

Android 以編程方式更改樣式

[英]Android Programmatically Change Style

我有超過 50 個 XML 布局/頁面,需要一種方法來確定每種屏幕類型(小/中/大)的“基本”字體大小。 實際上,我需要指定其他內容,例如線性布局的大小。

簡而言之,我想區分小型/中型/大型設備的尺寸。

1) 我會在啟動期間以編程方式更改 styles.xml 中的文本大小嗎?

這個選項很方便,因為我不必制作 150+ XML 布局。

2) 我會為三種尺寸創建三個單獨的 XML 布局嗎?

我必須復制+粘貼每個樣式(*.small、*.med、*.large)......這聽起來需要很多工作。

任何意見?

我假設您知道應該使用 Vinay 的回答中所述的可擴展單元:

http://developer.android.com/guide/practices/screens_support.html

我強烈建議不要偏離“最佳實踐”,除非你真的知道自己在做什么。 它只會給你帶來麻煩。 我不是專業人士,這就是我嘗試遵循標准的原因。 好的,現在讓我們來回答:

當你想使用不同的尺寸,而可伸縮的單位還不夠時,你必須在某處聲明它們。 所以無論如何你都要聲明不同的文件......這是不可避免的。 但話又說回來,只有當您的可擴展單元不足以在不同屏幕上提供所需的視覺效果時。

為此,您在value文件夾中聲明。 您是否在 Google Code 上看到了Google I/O 應用程序源 這是“谷歌”,他們做得很好。 如果您想通過示例學習,那可能是我能想到的最完整的資源。 但一開始有點害怕。

這里要說的太多了(許多簡單的問題......看起來你真的不知道你的方式,如果不是這樣的話很抱歉)你可能最好下載那個源代碼樹。

當然, value s 和layout s 文件夾都以透明的方式工作(這是使用標准的全部意義),因此您無需擔心布局中的屏幕變化(在處理鍵值樣式時)和/ 或在運行時(同時處理樣式和布局時)。

好吧,我不太確定我是否完全理解您的問題,但您似乎只是擔心字體大小,在 XML 中定義 TextSize 時,可以使用“縮放像素”(sp)對其進行標准化。 您也可以通過 Id 獲取 TextView 並通過 setTextSize() 方法設置文本大小,以編程方式更改文本大小(您建議的#1)。

如果這不是您要找的答案,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM