Android字型大小怎麼自適應不同解析度?
今天有人問我,android系統不同解析度,不同大小的手機,字型大小怎麼去適應呢?其實字型的適應和圖片的適應是一個道理的。
一、
原理如下:
假設需要適應320x240,480x320解析度。在res目錄下新建資料夾values-320x240, values-480x320。然後在資料夾 values ,values-320x240 和 values-480x320 下新建xml檔案dimens.xml,該xml檔案內容如下:
vaules-320x240下的dimens.xml內容如下:
values-480x320 下的dimens.xml內容如下:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="btnTextSize">18sp</dimen> </resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="btnTextSize">18sp</dimen>
</resources>
針對不同解析度的手機,android系統會自動適配載入相應檔案中的字型的大小值,btnTextSize的值是不同的。在佈局檔案中引用的方式如下:
在java檔案中這樣呼叫:<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:id="@+id/lblSet" style="@style/btntext" android:textSize="@dimen/btnTextSize"> </TextView>
int size= (int)this.getResources().getDimension(R.dimen.Text_size);
通過這種方法,可以方便設定在不同解析度下,字型的大小了。當然,不僅僅字型大小,寬和高等其他的一些屬性,也可以通過類似的方式來設定!
二、
1. 在檢視的 onsizechanged裡獲取檢視寬度,一般情況下預設寬度是320,所以計算一個縮放比率
rate = (float) w/320 w是實際寬度
2.然後在設定字型尺寸時 paint.setTextSize((int)(8*rate)); 8是在解析度寬為320 下需要設定的字型大小
實際字型大小 = 預設字型大小 x rate
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textSize="@dimen/Text_size"
/>
佈局多解析度適配 :
技術諮詢:請關注微信訂閱號,微信名:非著名程式設計師,微訊號:smart_android
相關推薦
Android字型大小怎麼自適應不同解析度?
今天有人問我,android系統不同解析度,不同大小的手機,字型大小怎麼去適應呢?其實字型的適應和圖片的適應是一個道理的。 一、 原理如下: 假設需要適應320x240,480x320解析度。在res
Qt的pointSize和pixelSize,qt字型大小自適應
實驗證明: 使用QFont的setPointSize,此時字型的大小會跟隨DPI改變而改變。 使用QFont的setPixelSize,此時字型的大小不會隨DPI的改變而發生變化。 通過設定PointSize的字型來說,字型大小是隨著螢幕大小以及解析度自適應的,因此無須處理字型的縮放
字型大小自適應純css解決方案
viewpoint css3提供了一些與當前viewpoint相關的元素,vw,vh,vim等。 “viewpoint” = window size vw = 1% of viewport width 1vh = 1% of viewport height 1vmin =
響應式網頁設計:rem、em設定網頁字型大小自適應
「rem」是指根元素(root element,html)的字型大小,好開心的是,從遙遠的 IE6 到版本帝 Chrome 他們都約好了,根元素預設的 font-size 都是 16px。這樣一個新的單位相容性如何呢? IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支援了,
【css】移動端自適應佈局與字型大小自適應
一、vw, vh vw它是根據可視區的寬度來計算的。 vh它是根據可視區的高度來計算的。 <body> <style> body { margin:0; } .te
rem設定網頁字型大小自適應
「rem」是指根元素(root element,html)的字型大小,好開心的是,從遙遠的 IE6 到版本帝 Chrome 他們都約好了,根元素預設的 font-size 都是 16px。這樣一個新的單位相容性如何呢?IE9+,Firefox、Chrome、Sa
UIbutton UIlabel字型大小自適應
背景 去年的六月份開始了一個新的專案,此專案支援的裝置從4S開始一直到6+,也就是說螢幕的尺寸最小的320x480 最大的1242x2208 (不過目前好像大部分的App都會這樣去支援),而客戶那邊
vb介面自適應不同解析度終極解決方案
現在寬屏,大螢幕顯示器越來越普遍,原來在800*600下設計的軟體介面,在大螢幕顯示器(1680*1050)上介面總是縮到一角,非常難看,要將老程式的介面按照不同的解析度在重新進行設計程式設計,整個過程比較複雜而且實用性不大,如果原來程式比較大且介面比較多的話那麼工作量也將是巨大的,而且還可能出現其他錯誤,有
window.open網頁自適應不同解析度方法
當你使用window.open函式時,想讓開啟的新視窗,可以自適應不同電腦解析度,使用以下js <script language="javascript" type="text/javascript"> var ww = window.scree
PopupWindow自適應不同大小的以及不同解析度的螢幕
1.情景再現: 在顯示PopupWindow時,如果去修改了系統的字型大小,在不同解析度的裝置上在字型設定成不同的大小時,有時會出現PopupWindow上顯示的文字被切斷的情況。 2.解決方案:加入自適應螢幕的程式碼語句 PopupWindow popupWindow =
Android 自定義TextView實現文字內容自動調整字型大小以適應TextView的大小
/** * 自定義TextView,文字內容自動調整字型大小以適應TextView的大小 * @author yzp */ public class AutoFitTextView extends TextView { private
CSS實現自適應不同大小螢幕的背景大圖的兩種方法(轉自簡書)
CSS實現自適應不同大小螢幕的背景大圖的兩種方法 一張清晰漂亮的背景圖片能給網頁加分不少,設計師也經常會給頁面的背景使用大圖,我們既不想圖片因為不同解析度圖片變形,也不希望當在大屏的情況下,背景有一塊露白,簡而言之,就是實現能自適應螢幕大小又不會變形的背景大圖,而且背景圖片不會隨著
根據螢幕大小自適應字型大小
auto winSize = Director::getInstance()->getWinSize(); float fontSize_title = 35; if (winSize.height <= 960.0f) {
用CSS3的@media屬性根據螢幕大小做自適應各種解析度網頁顯示版本-media_query詳解
如今,電腦顯示器的螢幕解析度向越來越大發展,而手機等移動裝置終端的解析度卻不可能大到哪裡去。越來越多的網站,開始讓自己的頁面自適合各種解析度,在小解析度下顯示基本的內容,在大解析度下顯示全部功能,甚至是分多等級的多版本。比如說我們熟悉的wordpress後臺,當螢幕解析度
android應用自適應多解析度的解決方法
1. 首先是建立多個layout資料夾(drawable也一樣)。 在 在res目錄下建立多個layout資料夾,資料夾名稱為layout-800x480等。需要適應那種解析度就寫成什麼。 注意: a. 較大的數字要寫在前面:比如layout-
PC端網頁自適應不用解析度大小螢幕
由於@media 這一屬性太複雜 所以在一般的公司網頁製作中 我們可以直接根據瀏覽器視窗的大小來做自適應 var height = window.innerHeight ||(document.documentElement&&document.docum
android webview設定自適應任意大小的pc網頁
WebSettings webSettings = view.getSettings(); webSettings.setJavaScriptEnabled(true); // User settings webSe
Android RecycerView 中根據圖片大小自適應控制元件大小的實現
問題 recyclerView中 item有ImageView,ImageView大小根據圖片大小而改變大小 解決方案 GlideApp.with(mContext)
手機html根據手機解析度網頁文字大小自適應
問題:不同手機型號螢幕尺寸大不相同,導致同樣的文字,有的顯示一行,有的顯示多行。通過查資料和自己的嘗試解決;網頁開發習慣的px單位,手機html開發不適用。原始碼如下:<!DOCTYPE html> <html lang="en"> <head&
android字型大小根據解析度自動調整
手機裝置太多,解析度也不一樣,看到網上大部分的適應字型的方法是定義values320×480或value-hdpi方式去處理。 採用第一種的就慘了,很多裝置的解析度是不一樣的,難道要每種都定義嗎? 採用第二種的在平板電腦裡沒有效果。 最後還是程式碼的方式方便快捷。。。