欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

轉:Android中尺寸單位雜談

系統 1908 0

講解一

在android系統中單位DP也就是DIP:device independent pixels(設備獨立像素).

dip : device independent pixels(設備獨立像素). 不同設備有不同的顯示效果,這個和設備硬件有關,一般我們為了支持WVGA、HVGA和 QVGA 推薦使用這個,不依賴像素。   

?


px : pixels(像素). 不同設備顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。  


pt : point,是一個標準的長度單位,1pt=1/72英寸,用于印刷業,非常簡單易用;  


sp : scaled pixels(放大像素). 主要用于字體顯示best for textsize。  


dp也就是dip。這個和sp基本類似。如果設置表示長度、高度等屬性時可以使用dp或sp。但如果設置字體,需要使用sp。dp是與密度無關,sp除了與密度無關外,還與scale無關。如果屏幕密度為160,這時dp和sp和px是一樣的。 1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。那么原來TextView的寬度設成 160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。但如果設置成160dp或160sp的話。系統會自動將 width屬性值設置成320px的。也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據屏幕密度的變化自動進行轉換.

講解二

2.1 使用尺寸(dimen)資源

我們可以使用一些常用的尺寸單位來定義一些文字尺寸、視圖組件的寬和高等。尺寸資源是一個數字類型的數據,被定義在res\values\dimens.xml文件中。

2.1.1 Android中支持的尺寸單位

在計算機中一般我們會用到的尺寸單位有厘米(cm)、毫米(mm)、像素(px)、英尺(in)等。Android中支持的尺寸單位如表3.4所示。

表 Android中支持單位

? ? ?

? ? ?

? ? ?

px

像素

屏幕上的真實像素表示

in

英尺

基于屏幕的物理尺寸


續表

? ? ?

? ? ?

? ? ?

mm

毫米

基于屏幕的物理尺寸

pt

英尺的 1/72

dp

和密度無關的像素

相對屏幕物理密度的抽象單位

sp

和精度無關的像素

dp 類似

2.1.2 尺寸資源XML文件的定義

尺寸資源是定義在XML文件中的一些整型數值。有關尺寸資源的定義如表3.5所示。

表3.5 尺寸資源的定義和使用

? ? ?

res/values/dimens.xml

尺寸 XML 文件格式

使用 <?xml version="1.0" encoding="utf-8"?>

<resources> 根元素

<dimen> 子元素: <dimen name=

dimen_name>dimen_value</dimen>

獲得尺寸資源的方法

getResources().getDimension()

引用尺寸資源的格式

Java 代碼中: R.dimen.dimen_name

XML 文件中: @[package:]dimen/dimen_name

2.1.3 尺寸資源XML文件的使用

下面還是通過一個實例來演示尺寸資源的用法。該實例在布局文件中添加一個TextView和一個Button,分別使用尺寸資源文件來定義它們的寬和高。

在工程的res\values\目錄下創建一個dimens.xml尺寸資源文件。

    <?xmlversion="1.0"encoding="utf-8"?>
<resources>
<dimenname="text_width">150px</dimen>
<dimenname="text_height">100px</dimen>
<dimenname="btn_width">30mm</dimen>
<dimenname="btn_height">10mm</dimen>
</resources>
  

?

在工程的res\layout\目錄下創建一個test_dimen.xml布局文件。在該布局文件中添加一個TextView和一個Button。TextView的寬和高引用尺寸資源來設置。Button的寬和高在代碼中設置。

    
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
  3. android:orientation = "vertical" android:layout_width = "fill_parent"
  4. android:layout_height = "fill_parent" >
  5. < TextView
  6. android:text = "@string/test_dimen"
  7. android:id = "@+id/myDimenTextView01"
  8. android:layout_width = "wrap_content"
  9. android:layout_height = "wrap_content"
  10. android:width = "@dimen/text_width"
  11. android:height = "@dimen/text_height"
  12. android:background = "@color/red_bg"
  13. />
  14. < Button
  15. android:text = "@string/test_dimen1"
  16. android:id = "@+id/Button01"
  17. android:layout_width = "wrap_content"
  18. android:layout_height = "wrap_content" > </ Button >
  19. </ LinearLayout >

在com.amaker.dimen包中,創建一個TestDimensionActivity類。在該類頂部聲明使用的Button視圖組件,在onCreate()方法中實例化該組件,并定義尺寸資源設置其寬和高。

    
  1. packagecom.amaker.ch03.dimen;
  2. importandroid.app.Activity;
  3. importandroid.content.res.Resources;
  4. importandroid.os.Bundle;
  5. importandroid.widget.Button;
  6. importcom.amaker.test.R;
  7. /**
  8. *
  9. *@author郭宏志
  10. *測試尺寸資源
  11. */
  12. publicclassTestDimensionActivityextendsActivity{
  13. privateButtonmyButton;
  14. @Override
  15. publicvoidonCreate(BundlesavedInstanceState){
  16. super.onCreate(savedInstanceState);
  17. //設置當前Activity的內容布局視圖
  18. setContentView(R.layout.test_dimen);
  19. //通過findViewById方法獲得Button實例
  20. myButton =(Button)findViewById(R.id.Button01);
  21. //獲得Resources實例
  22. Resources r = getResources ();
  23. //通過getDimension方法獲得尺寸值
  24. float btn_h = r .getDimension(R.dimen.btn_height);
  25. float btn_w = r .getDimension(R.dimen.btn_width);
  26. //設置按鈕的寬
  27. myButton.setHeight((int)btn_h);
  28. //設置按鈕的高
  29. myButton.setWidth((int)btn_w);
  30. }
  31. }

運行程序,結果如圖3.4所示。

?

轉:Android中尺寸單位雜談
圖3.4 尺寸資源應用

轉:Android中尺寸單位雜談


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 美国免费一级片 | 午夜成人在线视频 | 国产在线精品一区二区夜色 | 日本狠狠干 | 成人黄色网战 | 在线免费国产 | 欧美日韩精品一区二区在线播放 | 久久6699精品国产人妻 | 天堂在线v | 99视频这里有精品 | 国产一区二区精品在线观看 | 牛和人交vide○s欧美 | 久久三区 | 国产精品视频网站 | 天天插天天射天天操 | 日韩欧美中文字幕在线观看 | 国产在线欧美精品中文一区 | 亚州a | 成年人在线观看视频网站 | 欧美va亚洲| 亚洲国产精品国自产电影 | 免费看成年人网站 | 91视频会员| av中文字幕在线 | aaa在线| 国产福利资源在线 | 国产精品免费观看 | 夜夜夜精品视频 | 亚洲一区二区三区免费视频 | 天天操天天插 | 泰国一级淫片在线观看 | 国产一级高清 | a在线观看网站 | 亚洲精品资源 | 欧美激情网| 亚洲欧美精品中字久久99 | 国产91在线免费 | 中文字幕在线一区二区三区 | 欧美地区一二三区 | 第四色播日韩AV第一页 | 人人射人人爱 |