Android XML 布局基础(三)LayoutParams 布局参数

  • ViewGroup 类会实现一个扩展 ViewGroup.Layoutparams 的嵌套类,里面包含一些设置视图 view 的尺寸和位置的属性。

image.png

// 创建视图

TextView tv = new TextView(this);

// 创建布局模块(可以认为它才是根视图,只有在它身上才能生效布局参数)

LinearLayout layout = new LinearLayout(this);

// 获取视图中的布局参数对象

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();

// 配置布局属性

params.leftMargin = 30; // 左边距

params.topMargin = 30; // 上边距

params.width = 100; // 宽

params.height = 200; // 高

// 将配置好的布局参数设置到视图中

tv.setLayoutParams(params);

// 将视图模块添加到布局模块中

layout.addView(tv);

三、属性


  • 一般而言,建议不要使用绝对单位(如像素 px)来指定布局宽度和高度,最好是使用相对测量单位(如与密度无关的像素单位 dpwrap_contentmatch_parent),有利于确保应用在各类尺寸的设备屏幕上正确显示。

  • wrap_content:视图将其大小调整为内容所需要的尺寸。

  • match_parent:视图尽可能采用其父视图组所允许的最大尺寸。

四、案例


  • xml 布局代码
<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

xmlns:tools=“http://schemas.android.com/tools”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

tools:context=“.MainActivity”>

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background=“#ffc”>

<LinearLayout

android:layout_marginTop=“200dp”

android:layout_marginLeft=“70dp”

android:layout_width=“300dp”

android:layout_height=“300dp”

android:background=“#fcf”>

<TextView

android:id=“@+id/dzm”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中的宫格布局可以使用GridView来实现。GridView是一个可滚动的视图,其中的元素按照网格形式排列。GridView需要一个adapter来提供数据和视图,可以使用ArrayAdapter或自定义的Adapter。 下面是一个简单的宫格布局实现: 1. 在XML布局文件中添加GridView组件: ``` <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="100dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center"/> ``` 2. 在Activity中获取GridView组件,并设置Adapter: ``` GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); ``` 3. 自定义Adapter实现getView方法: ``` public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } // references to our images private Integer[] mThumbIds = { R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8, R.drawable.image9, R.drawable.image10 }; } ``` 这里使用了ImageView作为GridView的子项,并设置了每个子项的大小、填充和缩放方式。在getView方法中,将图片资源设置为ImageView的图像。 这样就可以实现一个简单的宫格布局

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值