android編程之代碼布局(二)

來源:互聯網
上載者:User

上一篇,我們已經介紹了一點代碼布局,接下來,我們接著介紹


一、常用組件設定
Button,ImageView等組件基本上和xml中所定義的基本一樣,就不再詳細介紹了。

給出一些常用的設定方式,供大家參考:
setVisibility(View.VISIBLE)  //是否可見
requestFocus()  //獲得焦點
setGravity(Gravity.CENTER_VERTICAL)  //內部位置對齊
setPadding(10, 5, 5, 5);  //在內部距離各邊距離
setId(1);  //設定ID標示

對於xml中,android:layout_marginTop的設定,組件是沒有這個設定方法的。其實從layout_marginTop字面意義也可以看出,它是針對父類布局設定位置的。
這裡給出個關於設定layout_marginTop的例子:

mLayoutParams = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);mLayoutParams.addRule(RelativeLayout.RIGHT_OF, ID_IMAGE_HEAD);mLayoutParams.topMargin = 5;mLinearLayout.addView(mTextView, mLayoutParams);

如果對於上一篇關於TextView組件位置的設定有印象的話,這裡就不難理解了,它就是告訴父類對象,當前組件針對父類布局要放到什麼位置。

關於EditText這個組件,如何設定最大輸入字數,這裡只給個例子:

mEditText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(8) });  

我這裡設定最多可輸入的字數為8個。

二、相對布局
除了經常使用的線性布局外,還常會用到相對布局,尤其是它的相對位置設計非常適合機型適配要求。

在寫相對布局的xml時候,我們幾乎要位每個最近設定ID標示,好告訴其他組件相對位置關係。在代碼布局中也同樣如此,需要為它們獨立設定ID標示,而且不要重複,否則位置關係就會錯誤。

下面,我們給出一段例子,方便大家理解:

// 建立RelativeLayout對象RelativeLayout mRelativeLayout = new RelativeLayout(this);mRelativeLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));// TextView組件:白色30號字TextView mTextView = new TextView(this);mTextView.setTextSize(30);mTextView.setTextColor(-1);mTextView.setText("hello world");// 為其設定唯一的id標示mTextView.setId(1);// 為其設定位置關係RelativeLayout.LayoutParams mLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);// 距離頂部20mLayoutParams.topMargin = 20;// 距離左邊20mLayoutParams.leftMargin = 20;// 添加組件mRelativeLayout.addView(mTextView, mLayoutParams);// TextView組件:紅色20號字mTextView = new TextView(this);mTextView.setTextSize(20);mTextView.setTextColor(0xffff0000);mTextView.setText("hello world");// 為其設定唯一的id標示mTextView.setId(2);// 為其設定位置關係mLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);// 距離頂部20mLayoutParams.topMargin = 20;// 距離左邊20mLayoutParams.leftMargin = 20;// 設定它在白色字的下面mLayoutParams.addRule(RelativeLayout.BELOW, 1);// 水平置中顯示mLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);// 添加組件mRelativeLayout.addView(mTextView, mLayoutParams);

:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.