十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
從Hello world!開始,我們一直都是在一種布局下學習的,當然,對于基礎(chǔ)內(nèi)容的學習,還是沒有任何問題的!但——
在Android開發(fā)中UI設(shè)計也是十分重要的,當用戶使用一個App時,最先感受到的不是這款軟件的功能是否強大,而是界面設(shè)計是否賞心悅目,用戶體驗是否良好。也可以這樣說,有一個好的界面設(shè)計去吸引用戶的使用,才能讓更多的用戶體驗到軟件功能的強大。
那么,Android中幾種常用布局則顯得至關(guān)重要。各個布局既可以單獨使用,也可以嵌套使用,我們應(yīng)該在實際應(yīng)用中應(yīng)靈活變通。
第2章、LinearLayout線性布局
LinearLayout是一種線型的布局方式。LinearLayout布局容器內(nèi)的組件一個挨著一個地排列起來:不僅可以控制個組件橫向排列,也可控制各組件縱向排列。通過orientation屬性設(shè)置線性排列的方向是垂直(vertical)還是縱向(horizontal)。
我們下面通過XML布局和Java代碼布局兩種方式分別舉例:
一、XML方式布局
1、創(chuàng)建一個空白Activity
2、打開“res/layout/activity_main.xml”文件,修改成以下代碼。
(1)第①部分
,每個XML文檔都由XML序言開始,在前面的代碼中的第一行便是XML序言,。這行代碼表示按照1.0版本的XML規(guī)則進行解析。encoding = "utf-8"表示此xml文件采用utf-8的編碼格式。編碼格式也可以是GB2312。
如果你對此不太明白,請參閱相關(guān)XML文檔。
(2)第②部分
(3)第③部分 android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器寬度和高充將填充整個屏幕寬度和高度。 (4)第④部分 android:orientation="vertical"表示布局管理器內(nèi)組件采用垂直方向排列。 如果要采用水平方向請使用:horizontal。 3、插入三個按鈕。 4、打開“res/layout/activity_main.xml”文件,修改成以下代碼。 將3個按鈕的android:layout_width的屬性設(shè)為:"match_parent"。 該屬性可以有三個值:wrap_content、match_parent、fill_parent。 wrap_content表示寬度匹配內(nèi)容,簡單地說就是文字有多長按鈕就多長。 match_parent表示寬度匹配父內(nèi)容,按鈕外的容器有多寬就顯示多寬。 fill_parent與match_parent相同,android2.2以后就不推薦使用了。 最終顯示效果如下: 二、Java代碼方式布局 上面我們已經(jīng)了解采用XML進行LinearLayout布局,我們現(xiàn)在再來學習一下如何使用Java代碼完成與之同樣功能。 1、打開“src/com.genwoxue.LinearLayout/MainActivity.java”文件。 然后輸入以下代碼: 在以上代碼中,我們著重分析一下帶有淺藍色背景部分。 (1)第①部分 導入與LinearLayout、LayoutParams、Button相關(guān)的包。 (2)第②部分 創(chuàng)建線性布局管理器,并且設(shè)置布局管理寬度和高度與方向。 LinearLayout llLayout=new LinearLayout(this):創(chuàng)建線性布局管理器; LayoutParams lpPara=new LayoutParams( LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT):創(chuàng)建布局參數(shù),構(gòu)造函數(shù)設(shè)置寬度與高度。用于設(shè)置線性布局管理器寬度與高度。 llLayout.setOrientation(LinearLayout.VERTICAL):設(shè)置布局管理器為垂直方向。 (3)第③部分 LayoutParams btnPara=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT):創(chuàng)建布局參數(shù),構(gòu)造函數(shù)設(shè)置寬度與高度。用于設(shè)置三個按鈕寬度與高度。 (4)第④部分 創(chuàng)建3個按鈕:btnFourth、btnFifth、btnSixth,設(shè)置其文本與布局參數(shù)。 (5)第⑤部分 為線性布局管理器添加3個按鈕。 (6)第⑥部分 super.addContentView(llLayout, lpPara):為當前activity添加布局管理器以及布局管理器的參數(shù)對象。 2、顯示效果 MainActivity.java源碼: import android.app.Activity; 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;//別導錯了
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
LinearLayout llLayout = new LinearLayout(this);
LayoutParams lpPara = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
llLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams btnPara = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
Button btnFourth = new Button(this);
btnFourth.setLayoutParams(btnPara);
btnFourth.setText("第四個按鈕");
Button btnFifth = new Button(this);
btnFourth.setLayoutParams(btnPara);
btnFourth.setText("第五個按鈕");
Button btnSixth = new Button(this);
btnFourth.setLayoutParams(btnPara);
btnFourth.setText("第六個按鈕");
llLayout.addView(btnFourth);
llLayout.addView(btnFifth);
llLayout.addView(btnSixth);
super.addContentView(llLayout, lpPara);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
當前文章:布局Layouts之LinearLayout線性布局-創(chuàng)新互聯(lián)
標題鏈接:http://m.jiaotiyi.com/article/dcsedi.html