android button layoutparams,使用LayoutParams设置布局
1、public static classViewGroup.LayoutParamsextends Objectjava.lang.Object↳android.view.ViewGroup.LayoutParamsClass OverviewLayoutParams are used by views to tell their parents how they want to be laid
1、public static class
ViewGroup.LayoutParams
extends Object
java.lang.Object
↳
android.view.ViewGroup.LayoutParams
Class Overview
LayoutParams are used by views to tell their parents how they want to be laid out.
LayoutParams是ViewGroup的一个内部类, 每个不同的ViewGroup都有自己的LayoutParams子类
DEMO://创建一个线性布局
private LinearLayout mLayout;
mLayout = (LinearLayout) findViewById(R.id.layout);
//现在要往mLayout里边添加一个TextView
TextView textView = new TextView(Activity01.this);
textView.setText("Text View " );
//这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如
/***/
//第一个参数为宽的设置,第二个参数为高的设置。
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
//调用addView()方法增加一个TextView到线性布局中
mLayout.addView(textView, p);
//比较简单的一个例子
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT
3,WRAP_CONTENT
2、addRule()
public class
RelativeLayout
extends ViewGroup
java.lang.Object
↳
android.view.View
↳
android.view.ViewGroup
↳
android.widget.RelativeLayout
java.lang.Object
↳
android.view.View
↳
android.view.ViewGroup
↳
android.widget.RelativeLayout
void android.widget.RelativeLayout.LayoutParams.addRule(int verb, int anchor)
public void addRule
(int verb, int anchor) 设置控件的相对位置
Added in API level 1
Adds a layout rule to be interpreted by the RelativeLayout. Use this for verbs that take a target, such as a sibling (ALIGN_RIGHT) or a boolean value (VISIBLE).
ParametersOne of the verbs defined by RelativeLayout, such as ALIGN_WITH_PARENT_LEFT.The id of another view to use as an anchor, or a boolean value(represented asTRUE) for true or 0 for false). For verbs that don't refer to another sibling (for example, ALIGN_WITH_PARENT_BOTTOM) just use -1.
package sunny.example.layoutparamstaddrule;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
public class TestView extends RelativeLayout{
private LayoutParams mLayoutParams_1,mLayoutParams_2;
Button mButton;
TextView mTextView;
public TestView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mButton = new Button(context);
mTextView = new TextView(context);
init();
}
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
mButton = new Button(context);
mTextView = new TextView(context);
init();
}
public TestView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
mButton = new Button(context);
mTextView = new TextView(context);
init();
}
public void init(){
mLayoutParams_1 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
mLayoutParams_1.addRule(RelativeLayout.ALIGN_TOP);
addView(mButton,mLayoutParams_1);
mLayoutParams_2 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
mLayoutParams_2.addRule(RelativeLayout.BELOW, TRUE);
mTextView.setText("Hey");
addView(mTextView,mLayoutParams_2);
}
}
Thanks to 泡在网上的日子verbanchor
更多推荐
所有评论(0)