Android 設定與外部控制元件距離(setPadding 和setMargin的使用)
阿新 • • 發佈:2018-12-31
一.問題描述
在設計UI過程中,想使圖片處於螢幕的特定位置(如下圖1),但發現圖片總是在頂端(如下圖2):
圖一:欲實現的介面 圖二:實際的介面
二.解決辦法
2.1使用setPadding
如下所示:
RelativeLayout relativeLayout =(RelativeLayout) findViewById(R.id.login);
relativeLayout.setPadding(0,40,0,0);
其中第一行表示獲取到該介面的佈局,第二行對該佈局使用setPadding()方法,意為規定其內部控制元件需距該控制元件的距離。
2.2使用setMargin
如下所示:
ImageView applicationImageView = (ImageView) findViewById(R.id.app_imageView);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) applicationImageView.getLayoutParams();
layoutParams.setMargins(0,GetDeviceWideAndHeight.getHeight(this)/10,0,0);
applicationImageView.setLayoutParams(layoutParams);
首先根據圖片的id獲取到該圖片,然後使用getLayoutParams()方法獲取到該圖片的佈局引數(注意這裡佈局引數可能是RelativeLayout.LayoutParams或LinearLayout.LayoutParams等型別的),進而使用setMargin()方法設定該圖片與其父容器的距離。拓展一下:這裡使用的setMargin()方法其實是MarginLayoutParams的方法, 因RelativeLayout.LayoutParams是繼承MarginLayoutParams的,所以可以用setMargin設定距離。
三.總結
setPadding():以外部控制元件的角度,規定其內部控制元件與其的距離
setMargin()
這與在xml佈局檔案中使用margin和padding類似:
android:layout_marginLeft指該控制元件距離邊父控制元件的邊距,
android:paddingLeft指該控制元件內部內容距離該控制元件的邊距。