利用dimens.xml來達到資源的重用

標題是我本身理解的。大意是:有時候咱們爲了維護一個工程,或者想定義一個button樣式,或textView樣式,這些樣式中包含着文字的大小,背景圖片,前置圖片等一些資源。並且這個button或textView會在不少地方要用到它,本來咱們能夠將它的文字大小,圖片樣式等寫在XML中或者代碼中。但這樣的維護性太差了;一旦要修改的時候,須要挨個文件找,挨個修改。如今咱們利用dimens來維護時,只須要修改對應的dimens裏定義的值。全部引用它的地方都會自動的修改這樣,咱們就達到了維護的目的;html

咱們能夠將要定義的屬性寫在dimens.xml中,以達到資源重複利用;java

步驟以下:android

1.在values文件夾下創建名爲dimens.xml的文件,以下:app

[html] view plaincopyide

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="test_dimen">文本區域</string>
  4. <string name="test_dimen1">按鈕</string>
  5. <dimen name="text_width">150px</dimen>
  6. <dimen name="text_height">100px</dimen>
  7. <dimen name="btn_width">30mm</dimen>
  8. <dimen name="btn_height">10mm</dimen>
  9. <color name="red_bg">#f00</color>
  10. </resources>

2.在layout文件夾下創建名爲test_dimens.xml的文件,以下:佈局

[html] view plaincopy.net

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

3.創建類: xml

[java] view plaincopyhtm

  1. package com.dim; 
  2. import android.app.Activity; 
  3. import android.os.Bundle; 
  4. import android.widget.Button; 
  5. import android.content.res.*; 
  6. import com.dim.R; 
  7. public class DimensionActivity extends Activity { 
  8. /** Called when the activity is first created. */
  9. private Button btn; 
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) { 
  12. super.onCreate(savedInstanceState); 
  13. //設置當前Activity的佈局
  14.         setContentView(R.layout.test_dimens); 
  15. //獲取Button實例
  16.         btn=(Button)findViewById(R.id.Button01); 
  17.         Resources r=getResources(); 
  18. float btn_h =r.getDimension(R.dimen.btn_height); 
  19. float btn_w =r.getDimension(R.dimen.btn_width); 
  20.         btn.setHeight((int)btn_h); 
  21.         btn.setWidth((int)btn_w); 
  22. //setContentView(R.layout.main);
  23.     } 

 

 

 

原文地址:blog

http://blog.csdn.net/kazeik/article/details/8268721
相關文章
相關標籤/搜索