成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android用戶界面設計:框架布局

移動開發 移動應用 Android
框架布局是Android開發者組織視圖控件最簡單和最有效的布局之一。通過本文,你將學到所有關于框架布局的知識,它們主要用來在屏幕上組織特別的或重疊的視圖控件。使用得當的話,很多有趣的Android程序用戶界面都可以基于框架布局來設計。

框架布局是將控件組織在Android程序的用戶界面中最簡單的布局類型之一。

理解布局對于良好的Android程序設計來說是非常重要的。在這個教程里,你將學到所有關于框架布局的知識,它們主要用來在屏幕上組織特別的或重疊的視圖控件。使用得當的話,很多有趣的Android程序用戶界面都可以基于框架布局來設計。

什么是框架布局

框架布局是Android開發者組織視圖控件最簡單和最有效的布局之一。它們使用得比其它一些布局要少一些,只是因為它們一般只用于顯示單個視圖,或重疊的視圖。框架布局常用作容器布局,因為它一般只有一個子視圖(通常是另一個布局,用于組織多個視圖)。

技巧:事實上,你會看到框架布局是作為你設計的任何布局資源的父布局來使用的。如果你在層級視圖工具(Hierarchy Viewer tool,一個很有用的調試你的程序布局的工具)創建你的程序,你會發現你設計的任何布局資源都被顯示在一個父布局中——一個框架布局。

框架布局非常簡單,這使得它們非常高效。它們可以在XML布局資源文件中定義,也可以通過Java代碼在程序中定義。框架布局中的一個子視圖總是被繪制到相對于屏幕的左上角上。如果存在多個子視圖,那么他們被按順序一個堆疊在另一個上面的方式繪制。這意味著***個添加到框架布局的視圖將顯示在棧的底部,***添加的視圖會顯示在最頂部。

讓我們來看一個簡單的例子。我們假設有一個框架布局大小調整到控制整個屏幕(換句話說,layout_width and layout_height屬性都設置為match_parent)。我們要添加三個子控件到這個框架布局:

一個有湖面圖片的ImageView。

一個在屏幕頂部顯示的TextView。

一個在屏幕底部顯示的(使用layout_gravity屬性將TextView下沉到父布局的底部)TextView。

下圖展示這種類型的布局在屏幕上會是什么樣:

frame layout

在XML資源文件中定義框架布局

設計程序用戶界面最方便和可維護的方法是創建XML布局資源。這個方法極大地簡化了UI設計過程,將很多靜態創建和用戶界面控件的布局以及控件屬性的定義移到XML中去,取代了寫代碼。

XML布局資源必須存儲在/res/layout項目目錄下。讓我們看看前一節介紹的框架布局。同樣地,這個屏幕基本上就是一個有三個子視圖的框架布局:一個充滿整個屏幕的圖片,兩個文本控件繪制在它上面,每一個文本控件都是默認透明背景。這個布局資源文件命名為/res/layout/framed.xml,在XML中如下定義:

  1. xmlns:android="http://schemas.android.com/apk/res/android" 
  2.  
  3. android:layout_width="fill_parent" 
  4.  
  5. android:layout_height="fill_parent"> 
  6.  
  7. android:id="@+id/ImageView01" 
  8.  
  9. android:layout_height="fill_parent" 
  10.  
  11. android:layout_width="fill_parent" 
  12.  
  13. android:src="@drawable/lake" 
  14.  
  15. android:scaleType="matrix"> 
  16.  
  17. android:layout_width="fill_parent" 
  18.  
  19. android:layout_height="wrap_content" 
  20.  
  21. android:textColor="#000" 
  22.  
  23. android:textSize="40dp" 
  24.  
  25. android:text="@string/top_text" /> 
  26.  
  27. android:layout_width="fill_parent" 
  28.  
  29. android:layout_height="wrap_content" 
  30.  
  31. android:text="@string/bottom_text" 
  32.  
  33. android:layout_gravity="bottom" 
  34.  
  35. android:gravity="right" 
  36.  
  37. android:textColor="#fff" 
  38.  
  39. android:textSize="50dp" /> 

 回憶一下,在Activity中,只需要在onCreate()方法中添加一行代碼來在屏幕上加載和顯示布局資源。如果布局資源存放在/res/layout/framed.xml文件中,這行代碼應該是:

  1. setContentView(R.layout.framed); 

用程序定義框架布局

你也可以用程序創建和配置框架布局。這通過使用FrameLayout類(android.widget.FrameLayout)來實現。你會在 RelativeLayout.LayoutParams類中找到具體的參數。同樣地,典型的布局參數 (android.view.ViewGroup.LayoutParams),比如layout_height和layout_width,以及邊距參數(ViewGroup.MarginLayoutParams),也能用在FrameLayout對象上。

你必須用Java創建屏幕內容,然后向setContentView()方法提供一個包含所有要作為子視圖顯示的控件內容的父布局對象,而不是像前面所示直接使用setContentView()方法來加載布局資源。在這里,你的父布局就是框架布局。例如,下面的代碼示例了如何用程序重新創建前面描述的相同的布局。特別地,我們在活動中實例化一個FrameLayout,并在它的onCreate()方法中先添加一個ImageView控件然后再添加兩個TextView控件:

  1. public void onCreate(Bundle savedInstanceState) {  
  2.  
  3. super.onCreate(savedInstanceState);  
  4.  
  5. TextView tv1 = new TextView(this);  
  6.  
  7. tv1.setText(R.string.top_text);  
  8.  
  9. tv1.setTextSize(40);  
  10.  
  11. tv1.setTextColor(Color.BLACK);  
  12.  
  13. TextView tv2 = new TextView(this);  
  14.  
  15. tv2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM));  
  16.  
  17. tv2.setTextSize(50);  
  18.  
  19. tv2.setGravity(Gravity.RIGHT);  
  20.  
  21. tv2.setText(R.string.bottom_text);  
  22.  
  23. tv2.setTextColor(Color.WHITE);  
  24.  
  25. ImageView iv1 = new ImageView(this);  
  26.  
  27. iv1.setImageResource(R.drawable.lake);  
  28.  
  29. iv1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  30.  
  31. iv1.setScaleType(ScaleType.MATRIX);  
  32.  
  33. FrameLayout fl = new FrameLayout(this);  
  34.  
  35. fl.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  36.  
  37. fl.addView(iv1);  
  38.  
  39. fl.addView(tv1);  
  40.  
  41. fl.addView(tv2);  
  42.  
  43. setContentView(fl);  
  44.  

 最終屏幕運行結果和前面圖片展示的一模一樣。

何時使用框架布局

當你可以自由使用其它強大布局類型,如線性布局,相對布局和表格布局時,很容易會忘了框架布局。框架布局的效率使得它是包含很少視圖控件的屏幕的很好的選擇(主屏幕,只有一個畫布的游戲界面等)。有些時候其它低效的布局設計可以簡化為一個更有效率的框架布局設計,而其它時候使用更專業的布局類型會更合適。當你想要堆疊視圖時框架布局是一般的選擇。

看看類似的控件

FrameLayout相對比較簡單。因為這一點,很多其它布局類型和視圖控件都是基于它的。例如,ScrollView就是一個在子內容太大而不能在布局界限內完全展示時出現滾動條的框架布局。所有主屏幕(Home屏幕)應用小工具都位于一個框架布局中。

對于所有框架布局需要注意的是它們除了通常的背景以外還可以設置前景色。這通過android:foreground XML屬性來實現。這也可以用于框架下面的視圖。

總結

Android程序Android程序用戶界面使用布局來定義,框架布局是最簡單和***效的布局類型之一。框架布局的子控件被相對于布局的左上角來繪制。如果框架布局中存在多個子視圖,它們將按順序繪制,***一個子控件繪制在最上面。

原文出處

【編輯推薦】

  1. Android用戶界面設計:相對布局
  2. Android用戶界面設計:線性布局
  3. Android用戶界面設計:布局基礎
  4. Android用戶界面設計:基本按鈕
  5. Android用戶界面設計模板Dashboard產品展示

 

責任編輯:佚名 來源: RockUX
相關推薦

2011-04-11 17:25:30

線性布局用戶界面設計Android

2011-04-11 17:07:33

布局基礎用戶界面設計Android

2011-04-19 09:19:37

相對布局界面設計Android

2011-04-08 13:58:10

Android界面設計

2011-05-19 08:49:01

使用片段界面設計Android

2011-06-01 10:58:57

2011-06-01 10:30:41

用戶界面

2011-12-20 10:42:22

Android應用界面設計

2011-03-02 14:03:02

DashboardAndroid用戶界面反例模板

2011-03-02 10:49:42

DashboardAndroid用戶界面設計模板

2013-11-27 10:12:11

2012-01-16 16:16:49

JavaSwing

2011-06-01 16:50:05

Android ListView

2013-12-26 15:46:30

Android開發Android應用用戶界面設計

2014-11-26 10:42:55

界面設計

2011-06-01 09:31:46

用戶界面設計

2012-01-16 11:03:09

javaswing

2011-10-09 11:05:13

Android 4.0

2014-04-03 09:49:20

設計界面設計

2015-07-09 10:25:45

界面設計UI設計
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品免费视频 | 国产免费福利在线 | 欧美日韩国产三级 | 中国毛片免费 | 亚洲精品一区二区三区四区高清 | 国内精品久久久久久久 | 亚洲天堂av一区 | 欧美精品中文字幕久久二区 | 日韩欧美久久精品 | 国产高清久久 | av官网在线 | 欧美13videosex性极品 | 精品国产乱码久久久久久蜜柚 | 97精品国产97久久久久久免费 | 欧洲一区二区在线 | 蜜桃av一区二区三区 | 黄色成人免费在线观看 | 国产精品美女久久久久久免费 | 久久不卡日韩美女 | 亚洲精品成人av | 欧美三级视频 | www性色 | 午夜精品一区二区三区免费视频 | 男女羞羞视频在线看 | 久久91精品国产一区二区三区 | 精品国产一区二区三区免费 | 日本大香伊一区二区三区 | 国产精品久久二区 | 日日操视频| 亚洲午夜电影 | 欧美日在线 | 久久99精品久久久久久 | jlzzjlzz国产精品久久 | 国产精品夜夜春夜夜爽久久电影 | 久久久人成影片一区二区三区 | 91精品国产综合久久婷婷香蕉 | 久久av一区| 高清视频一区二区三区 | 免费福利视频一区二区三区 | 亚洲一区二区电影网 | 婷婷在线免费 |