android 如何动态设置margin,Android 动态设置margin
android的view中有setPadding,但是沒有直接的setMargin方法。如果要在代碼中設置該怎么做呢?
可以通過設置view里面的LayoutParams
設置,而這個LayoutParams是根據(jù)該view在不同的GroupView而不同的。
布局文件如下:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/ceshi_ly"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray" >
android:id="@+id/ceshi_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/holo_green_dark"
android:text="測試動態(tài)設置margin" />
代碼如下:
package com.android.testdemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView ceshiTv = (TextView) findViewById(R.id.ceshi_tv);
LinearLayout.LayoutParams lp = (LayoutParams) ceshiTv.getLayoutParams();
lp.setMargins(30, 50, 22, 10);
ceshiTv.setLayoutParams(lp);
}
}效果如下:
當然也可以把其封裝成方法,如下:
public static void setMargins (View v, int l, int t, int r, int b) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(l, t, r, b);
v.requestLayout();
}
}
原文:http://blog.csdn.net/u014649598/article/details/45580461
總結
以上是生活随笔為你收集整理的android 如何动态设置margin,Android 动态设置margin的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信号最好的骁龙8手机 realme GT
- 下一篇: 愉快买买买:40系显卡涨价10%能救场吗