文档章节

动态设置控件的Margin

fantasiter
 fantasiter
发布于 2016/06/13 09:42
字数 348
阅读 180
收藏 1
点赞 0
评论 0
在屏幕适配的时候我们往往需要在代码里动态设置控件的边距(Margin),因为子控件(ImageButton,Button等)没有直接设置Margin的方法或者其他原因.
1.
Margin的动态设置如下:

    //1 首先初始化控件
    Button button = new Button(this);
    //2 获取父控件的属性并且设置好属性
    LinearLayout.LayoutParams buttonLayoutParams = new                  LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonLayoutParams.setMargins(50, 10, 0, 0);
    button.setLayoutParams(buttonLayoutParams);
    //3 初始化父控件
    LinearLayout layout = new LinearLayout(this);
    //4 把子控件加入到父控件里
    layout.addView(button);

2.除了直接设置子控件的Margin外,我们还可以通过设置父控件的Padding来间接设置子控件的Margin.
对于如下的布局文件就可以才起第二种方法:

    <LinearLayout
                    android:id="@+id/linearBullet"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:padding="@dimen/padding_3dip"
                    android:stretchColumns="*"
                    >


                    <ImageButton
                        android:id="@+id/button5"
                        android:layout_width="@dimen/width_50dp"
                        android:layout_height="@dimen/height_50dp"
                        android:layout_column="0"
                        android:background="@null"
                        android:scaleType="fitCenter"
                        android:src="@drawable/bullet_img"
                        android:text="字幕"/>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="字幕"
                        android:gravity="center_horizontal"
                        android:textColor="@color/videoview_text_color"
                        android:layout_gravity="center_horizontal"/>
                </LinearLayout>

下面是在class里动态设置父控件的Padding:
    
    LinearLayout layout = (LinearLayout)findViewById(R.id.linearBullet);
    //利用Padding方法设置边距
    layout.setPadding(20,20,20,20);

相比较来说,第二种方法好一点,第一种局限性太大,因为xml的布局已经定型,不能随意addView,所以轻易不能使用

© 著作权归作者所有

共有 人打赏支持
fantasiter
粉丝 1
博文 115
码字总数 24535
作品 0
青岛
Auto Layout 和 Constraints

自动布局Auto Layout Auto Layout,通过设置在View上的约束,动态计算视图层次结构中所有的View的尺寸和位置。举个栗子,你约束一个Button,令它的水平中心线和一个ImageView相同,并且它的上...

hejunbinlan
2016/08/01
2
0
使用Windows8开发Metro风格应用四

我们紧接着上篇,开始我们的Metro风格应用开发。 -----------------------------------我是华丽的分割线----------------------------------------- 12.在 XAML 中定义应用布局 a)在接下来的...

晨曦之光
2012/06/07
183
0
Android 实现圆角布局,变相实现圆角图片效果(不同位置不同弧度)

小菜最近在处理图片的圆角,不止是四个角全是圆角,还包括单左侧/单右侧/对角线方向的圆角。因为自己太菜只能寻求网上的大神,发现一个自定义圆角布局,这样可以变相的解决我的需求,还可以实...

阿策神奇
06/01
0
0
Silverlight+WCF 新手实例 象棋 主界面-棋盘区(二十二)

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示 这节我们要布局Index.xaml界面。 首先,我们定义一下全局的宽和高:1000*620[数字差不多就行了] 一堆代码,都是自动生成的,只是改了...

晨曦之光
2012/03/09
0
0
web打印的几种实现方法(转载)

web打印的几种实现方法(转载) web打印,web打印控件的三种实现方法 做管理系统的时候,打印一直是个棘手的问题,做B/S的系统这个问题就更加突出了!下面举出三种常用的web打印处理方式 1、...

什么是程序员
2015/09/18
1K
0
ConstraintLayout在项目中实践与总结

ConstraintLayout,让布局更优雅。 一、为什么要用ConstraintLayout image.jpg 上图是网易100分的选课首页,在Banner图的下部是推荐类目模块,其中数学、语言、小低和小高分别是推荐类目Ite...

宇是我
2017/11/30
0
0
AutoFlowLayout:多功能流式布局与网格布局控件

近期工作需要用到流式布局,网上也有很多关于这方面的资料。发现流式布局与网格布局的自定义很有意思,是学习自定义控件的一个很好的方式,所以就撸了个几百行代码的控件,既实用又具有学习价...

2017/08/07
0
0
QSS知识总结

QT样式表单 QT的样式表单允许我们在对程序不做任何代码上的更改的情况下轻松改变应用程序的外观。 其思想来源于网页设计中的CSS,即可以将功能设计和美学设计分开。 它的语法和概念和HTML CS...

tiankefeng0520
2014/05/27
0
0
AJAX控件UpdatePanel使用详解

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Accordion.aspx.cs" Inherits="AJAX_Accordion" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"......

长平狐
2013/01/06
333
0
项目需求讨论 — ConstraintLayout 详细使用教程

题外话 最近转方向参与到物联网的项目去了。看的都是C++和Node.js,表示从头学习,又变成了一个小菜鸟了。所以好久没写过文章了。 废话不多说,关于ConstraintLayout的文章网上一抓一大把,而...

青蛙要fly
2017/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
3
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部