Ⅰ android為什麼設置params.bottomMargin無效
Android動態改變View控制項大小的方法:
1、聲明控制項參數獲取對象 LayoutParams lp;
2、獲取控制項參數: lp = 控制項id.getLayoutParams();
3、設置控制項參數:如高度。 lp.height -= 10;
4:、使設置生效:控制項id.setLayoutParams(lp);
例如如要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(), ImageView.getPaddingTop()+200, ImageView.getPaddingRight(), ImageView.getPaddingBottom());
控制項之間的間距有兩種設置:
android:layout_margin="10dp" 外邊距
android:padding="10dp" 內邊距
Ⅱ Android開發中margin語法怎麼用
margin 是外邊距的意思。
在XML中 :
不設置margin:
這些屬性;
也可自己試下 padding;
Ⅲ 動態設置 android:layout_marginTop 怎麼設置
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layoutParam.setMargins(10, 20, 10, 0);代碼中,把這個 layoutParam 給控制項應該就可以了
Ⅳ Android的布局屬性中padding和margin的區別
本文將講述HTML和CSS的關鍵—盒子模型(Box model). 理解Box model的關鍵便是margin和padding屬性, 而正確理解這兩個屬性也是學慣用css布局的關鍵.
注:為什麼不翻譯margin和padding? 原因一, 在漢語中並沒有與之相對應的詞語; 原因二: 即使有這樣的詞語, 由於在編寫css代碼時, 必須使用margin和padding, 如果我們總用漢語詞語代替其來解釋的話, 到了實際應用時容易混淆margin和padding的概念.
如果有一點Html基礎的話, 就應該了解一些基本元素(Element), 如p, h1~h6, br, div, li, ul, img等. 如果將這些元素細分, 又可以分別歸為頂級(top-level)元素,塊級(block-level) 元素和內聯(inline)元素.
1. Block-level element: 指能夠獨立存在, 一般的塊級元素之間以換行(如一個段落結束後另起一行)分隔. 常用的塊級元素包括: p, h1~h6, div, ul等;
2. Inline element: 指依附其他塊級元素存在, 緊接於被聯元素之間顯示, 而不換行. 常用的內聯元素包括: img, span, li, br等;
3. Top-level element: 包括html, body, frameset, 表現如Block-level element, 屬於高級塊級元素.
塊級元素是構成一個html的主要和關鍵元素, 而任意一個塊級元素均可以用Box model來解釋說明.
Box Model:任意一個塊級元素均由content(內容), padding, background(包括背景顏色和圖片), border(邊框), margin五個部分組成. 立體圖如下(Fig. 1):
即ab=cd=30px, ID1的margin-top/bottom=10px被折疊了, 而且ID1應有的margin黑色背景也一同被折疊消失了.
為什麼會折疊:造成以上現象的原因是, 我們在css中並沒有聲明id為ID1的元素div的height(高), 因此它的高便被設為auto(自動)了. 一旦其值被設為auto, 那麼瀏覽器就會認為它的高為子元素ID2的border-top到border-bottom之間的距離, 即Fig. 4中bc的長度, 所以子元素ID2的margin-top/bottom(30px)就伸出到了父元素ID1之外, 出現了Fig. 4中ab與cd之間的空白區域. 因此父元素ID1的margin-top/bottom因子元素的」紅杏出牆」而被折疊消失了.
如何解決折疊問題:可能大家最初想到的辦法就是根據折疊發生的原因—auto, 來解決問題. 但是, 在實際操作中, 某些元素如div, h1, p等, 我們是不可能預先知道它的高是多少的, 因此在css文件中是不能常規通過聲明元素的高來解決折疊問題.
我們需要在css文件中加入如下代碼(紅色部分):
#ID1 {
background-color: #333;
color: #FFF;
margin-top: 10px;
margin-bottom: 10px;
padding-top:1px;
padding-bottom:1px;
}
或是:
#ID1 {
background-color: #333;
color: #FFF;
margin-top: 10px;
margin-bottom: 10px;
border-top:1px solid #333;
border-bottom:1px solid #333;
}
通過增加以上代碼, 便可使瀏覽器重新計算ID1的高, 使其為子元素ID2的margin-top/bottom外緣(outer top/bottom)之間的距離, 即Fig. 3中be的距離.
簡單說來:
也就是說 設置margin 那麼他所佔據的空白地方會是在邊框外面
設置padding 他所佔據的空白地方是在邊框裡面
而且在IE6 一下的版本中 存在這padding 計算錯誤的BUG
CSS 的寬度屬性本來是不包含padding的 但是 在ie下面有的時候寬度是包含padding 所以 建議在不熟悉CSS 在定位的時候 都用margin屬性
Ⅳ Android Dialog 設置Margin方式總結
在日常開發中,總是會遇到各種Dialog的使用,調整根據UI設計的不同,會經常調整Dialog在屏幕中的位置,這篇文章主要介紹,在使用 DialogFragment 時設置Margin的幾種方式。
如下是最後實現的效果:
設置兩邊margin效果:
設置頂部margin效果:
全屏的Dialog設置頂部Margin:
這個比較容易,主要就是設置一個高度wrap_content,寬度match_parent的dialog,然後在dialog的布局中設置margin就可以了。
如下是xml文件:
然後在DialogFragment的onResume里對Window做一些處理:
這種情況margin可以通過 WindowManager.LayoutParams 的 verticalMargin 屬性來實現。 verticalMargin 和xml裡面設置的layout_margin不一樣, verticalMargin 是通過設置一個0-1的float變數,來標識margin在屏幕中的佔比。
如下是在DialogFragment的onResume中的處理:
xml文件(和1的類似,沒有什麼特別):
這里如果使用2中的方法,沒有任何效果。這里使用另外一種方式實現-- insetDrawable 。
這里的實現是在xml裡面寫一個 <inset> :
在DialogFragment的onResume方法中:
Ⅵ android布局中怎麼設置外邊距
android 中有兩種邊距:外邊距margin 和內邊距 padding
假設一個控制項A和一個控制項B
設置A控制項的外邊距(上下左右)為10dp的代碼為:
margin:10dp;
設置A空間的外邊距(上)為10dp的代碼為:
margin-top:10dp;
其他以此類推
Ⅶ Android中margin和padding的區別
1、區別:
1)android:layout_marginLeft指該控制項距離邊父控制項的邊距;
2)android:paddingLeft指該控制項內部內容,如文本距離該控制項的邊距。
2、舉例:
當按鈕分別設置以上兩個屬性時,得到的效果是不一樣的。
android:paddingLeft="30px":
按鈕上設置的內容(例如圖片)離按鈕左邊邊界30個像素。
android:layout_marginLeft="30px"
整個按鈕離左邊設置的內容30個像素
這二個屬性是相對的,假設B是A的子控制項,設置B的margin和設置A的padding能達到相同的效果。
Ⅷ Android 通過配置,設置margin-Left和margin-Top相對的距離
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"android:layout_height="match_parent"
android:orientation="vertical">
<Viewandroid:layout_weight="1.0"
android:layout_width="match_parent"android:layout_height="0dp"/>
<LinearLayoutandroid:layout_weight="2.0"
android:layout_width="match_parent"android:layout_height="0dp"
android:orientation="horizontal">
<Viewandroid:layout_weight="1.0"
android:layout_width="0dp"android:layout_height="match_parent"/>
<LinearLayoutandroid:layout_weight="2.0"
android:layout_width="0dp"android:layout_height="match_parent">
//這個布局應該就是你要的
</LinearLayout>
</LinearLayout>
</LinearLayout>
Ⅸ Android如何在java代碼中設置margin
在xml里設置margin,如:<ImageView android:layout_margin="5dip" android:src="@drawable/image" />但是有些情況下,需要在java代碼里來寫,通過查閱android api,android.view.ViewGroup.MarginLayoutParams有個方法setMargins(left, top, right, bottom). 其直接的子類有: FrameLayout.LayoutParams, LinearLayout.LayoutParams and RelativeLayout.LayoutParams.:LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);lp.setMargins(10, 20, 30, 40);imageView.setLayoutParams(lp);
Ⅹ Android 如何在Java代碼中手動設置控制項的marginleft
1、定義LayoutParams
LinearLayout.LayoutParamslayoutParams=newLinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);//定義一個LayoutParams
2、在LayoutParams中設置marginLeft
layoutParams.setMargins(20,0,0,0);//4個參數按順序分別是左上右下
3、把這個LayoutParams設置給控制項
mView.setLayoutParams(layoutParams);//mView是控制項