Android开发视图基础之设置视图的宽、高和间距

一、设置视图的宽和高

1、xml文件设置视图宽、高和间距

APP控件通常是长方形形状(因为手机就是长方形的),所以控制宽、高的属性值分别为android:layout_width、android:layout_height,宽和高的取值主要有下列3种:

(1)match_parent

该参数表示的与上级视图保持一致,上级视图的尺寸有多大,当前视图就有多大。

(2)wrap_content

该参数表示与内容自适应。对于文本视图来说内部文字需要多大的显示空间,当前视图就会占用多大尺寸,但是不会超出上级视图的宽度,一旦超过就要换行;最高不能超过上级视图的高度,一旦超过就会被隐藏。

(3)dp值设置

这个就是写具体的以dp为单位的值,可以严格指定控件大小。

2、Java代码调用视图对象设置宽、高和间距

首先,先声明一下正常的开发过程中是很少采用Java文件去设置视图的一些布局,因为这一操作相对复杂,并且不太符合Android开发的一个设计逻辑,一般是前端(可见的操作页面)代码写在xml,后端(业务逻辑部分)代码写在Java,但是这里还是要提一下Java代码怎么处理视图的操作。依序执行一下三个步骤:

(1)调用控件对象getLayoutParams方法获取布局参数,参数类型为ViewGroup.LayoutParams。

(2)布局参数的width属性表示宽度,height属性表示高度,修改这两个属性,即可以调整控件的宽和高。

(3)调用控件对象的setLayoutParams方法,填入修改后的布局参数使之生效。

不过这里的布局参数默认为px单位,要是想用dp单位需要转换,后续可能会单独出一篇讲怎么转换的文章,这里不详细说。其中的Java实现布局的方式案例也就不提供代码了,根据我说的属性,大家可以试一试。

二、设置视图的间距

这里面接受几个常用的属性,一般的视图里面会包括这些属性,但不局限于这些属性,还有一些没有提到的大家可以去查找官方文档,这里只是带大家入个门,这里有必要说明一下,之前提到的TextView是继承View的,也就是相关的视图控件都是由View派生来的,同时ViewGroup也是继承于View的,布局则是继承于ViewGroup,清晰的表示如下:

View--->控件,View--->ViewGroup--->布局

1、属性介绍

(1)android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRight、android:layout_marginTop是视图与外部布局的底部、左部、右部、顶部的之间的间距的属性,其中的赋值单位可以采用dp等单位。

(2)android:layout_margin表示的是当前视图与外部布局的边距,这里直接包括四周,也就是设置好该属性的值,相当于对上面的四个的叠加。

(3)android:paddingBottom、android:paddingLeft、android:paddingRight、android:paddingTop是视图与内部布局的底部、左部、右部、顶部的之间的间距的属性,其中的赋值单位可以采用dp等单位。

2、设计案例

(1)Java代码部分:

public class ViewMarginActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_margin);
    }
}

(2)xml代码部分

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:background="#00AAFF"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp"
        android:background="#FFFF99"
        android:paddingBottom=""
        android:paddingLeft=""
        android:paddingRight=""
        android:paddingTop=""
        android:padding="60dp">

        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FF0000"></View>
    </LinearLayout>

</LinearLayout>

(3)运行结果演示

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦芒疯狂生长!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值