• 在java代码中设置margin


    我们平常可以直接在xml里设置margin,如:

    <ImageView android:layout_margin="5dip" android:src="@drawable/image" />

    但是有些情况下,需要在java代码里来写,可是View本身没有setMargin方法,怎么办呢?

    通过查阅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);

     原文:http://greatverve.cnblogs.com/archive/2012/01/29/android-margin.html

    android 使用代码实现 RelativeLayout布局

     RelativeLayout rl = new RelativeLayout(this);
            
            Button btn1 = new Button(this);
            btn1.setText("----------------------");
            btn1.setId(1);
            
            RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
            // btn1 位于父 View 的顶部,在父 View 中水平居中
            rl.addView(btn1, lp1 );
           
            Button btn2 = new Button(this);
            btn2.setText("|
    |
    |
    |
    |
    |");
            btn2.setId(2);
           
            RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            lp2.addRule(RelativeLayout.BELOW, 1);
            lp2.addRule(RelativeLayout.ALIGN_LEFT, 1);
            // btn2 位于 btn1 的下方、其左边和 btn1 的左边对齐
            rl.addView(btn2, lp2);
           
            Button btn3 = new Button(this);
            btn3.setText("|
    |
    |
    |
    |
    |");
            btn3.setId(3);
           
            RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
           lp3.addRule(RelativeLayout.BELOW, 1);
            lp3.addRule(RelativeLayout.RIGHT_OF, 2);
            lp3.addRule(RelativeLayout.ALIGN_RIGHT, 1);
            // btn3 位于 btn1 的下方、btn2 的右方且其右边和 btn1 的右边对齐(要扩充)
            rl.addView(btn3,lp3);
           
            Button btn4 = new Button(this);
            btn4.setText("--------------------------------------------");
            btn4.setId(4);
           
            RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            lp4.addRule(RelativeLayout.BELOW, 2);
            lp4.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
            // btn4 位于 btn2 的下方,在父 Veiw 中水平居中
            rl.addView(btn4,lp4);
           
           
            setContentView(rl);

    原文:http://kukuqiu.iteye.com/blog/1018396

    动态修改RelativeLayout的宽高:

    参数可以.属性设置,但数值是像素,需要转化为dp单位。

    RelativeLayout.LayoutParams linearParams =  (RelativeLayout.LayoutParams)rela_addnote_notetype.getLayoutParams();  
            linearParams.height = 44;  
            rela_addnote_notetype.setLayoutParams(linearParams);  

    原文:http://blog.csdn.net/chenguang79/article/details/37874793

     Android适配所需知识点LayoutParams:

    http://www.android100.org/html/201406/05/18971.html

  • 相关阅读:
    使用pycharm2022社区版搭建Django
    Transparent material performance
    Reduce local git repo storage
    去除指定表中数据类型是VARCHAR,CHAR,NVARCHAR的字段值中的不可见字符
    【设计模式学习笔记】桥接模式
    【设计模式学习笔记】代理模式
    【设计模式学习笔记】工厂模式
    【设计模式学习笔记】门面模式
    【设计模式学习笔记】建造者模式
    【设计模式学习笔记】组合模式
  • 原文地址:https://www.cnblogs.com/H-BolinBlog/p/5344666.html
Copyright © 2020-2023  润新知