Android setWidth setHeight 設定UI寬高

Android的裝置上解析度真的太多了,尤其在2.1以前跟2.2以後的margin定義方式也不同,所以在runtime狀況下能動態的改變layout是個最好的方式,但是在weight裡面有個屬性為"setWidth"、"setHeight"實際上設定下去weight卻不一定會跟著改變,只要有個地方發生問題就會整個掛掉,小則畫面變黑一下子,重責直接重開機。可以配合另一篇"Android 取得畫面解析度"來作更完善的調整。

現在就以一個按鈕為例,在xml中設定寬高方式如下
其中"wrap_content"就是照你按鈕內容改變大小,"fill_parent"就是直接佈滿,當然也可以直接以"100px"(100像素)這種方式直接給予固定的大小
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content">



在runtime中要給予大小,就以上面那button為例,在Activity中的onCreate內加上下面這段
Button myButton = (Button)findViewById(R.id.button);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100, 100);
myButton.setLayoutParams(params);


直接給予他一個layout的方式來修改就可以順利改變,或者可以採用下面這種方式(兩種效果相同)
Button myButton = (Button)findViewById(R.id.button);
myButton.getLayoutParams().width=150;
myButton.getLayoutParams().height=150;



相關連結
Android Developers
Android Developers - LinearLayout.LayoutParams
Android 取得畫面解析度

沒有留言:

張貼留言