Android 视图系统入门指南

1. View:界面的最小单位

  • 本质:屏幕上的一个矩形区域,能显示内容或接收触摸。
  • 比喻:就像乐高积木,是组成界面的最小单位。
  • 常见子类
    • TextView(文字积木)、Button(按钮积木)、ImageView(图片积木)。
  • 关键方法
    • setText()setBackgroundColor()setOnClickListener()
    • ******************************************************************************************
  1. ViewGroup:收纳盒和组织者
  • 本质:特殊的 View,能装下其他 View 和 ViewGroup,形成层级结构。
  • 比喻:就像乐高收纳盒,可以把积木按规则排列。
  • 常见子类
    • LinearLayout(排队收纳盒)、RelativeLayout(相对位置收纳盒)、ConstraintLayout(现代灵活收纳盒)。
  • 关键方法
    • addView()removeView()getChildAt()
    • *************************************************************************************

3. LayoutParams:摆放说明书

  • 本质:告诉 ViewGroup 如何摆放子 View 的 "规则"。
  • 比喻:就像乐高积木的拼搭说明书,指定积木的大小和位置。
  • 常见属性
    • width/height(大小)、gravity(对齐方式)、margin(边距)。
  • 注意
    • 不同 ViewGroup 有自己的 LayoutParams(如LinearLayout.LayoutParams
    • **************************************************************************************

4. MarginLayoutParams:带边距的豪华说明书

  • 本质LayoutParams的子类,增加了边距(margin)功能。
  • 比喻:普通说明书只能拼积木,豪华版还能指定积木之间的距离。
  • 关键属性
    • marginLeft/Top/Right/Bottom(四边边距)。
java 复制代码
// 1. 创建一个TextView(乐高积木)
TextView textView = new TextView(this);
textView.setText("Hello");

// 2. 创建一个LinearLayout(收纳盒)
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);

// 3. 给TextView设置摆放规则(说明书)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT, // 宽度:包裹内容
    LinearLayout.LayoutParams.WRAP_CONTENT  // 高度:包裹内容
);
params.topMargin = 20; // 上边距20像素
textView.setLayoutParams(params);

// 4. 将TextView放入LinearLayout(把积木放进收纳盒)
layout.addView(textView);

// 5. 将LinearLayout添加到Activity(把收纳盒放到房间里)
setContentView(layout);
相关推荐
fatiaozhang95271 小时前
中兴B860AV1.1_MSO9280_降级后开ADB-免刷机破解教程(非刷机)
android·adb·电视盒子·av1·魔百盒刷机·移动魔百盒·魔百盒固件
二流小码农1 小时前
鸿蒙开发:绘制服务卡片
android·ios·harmonyos
微信公众号:AI创造财富1 小时前
adb 查看android 设备的硬盘及存储空间
android·adb
码农果果2 小时前
Google 提供的一组集成测试套件----XTS
android
火柴就是我2 小时前
每日见闻之Rust中的引用规则
android
雨白2 小时前
SQLite 数据库的事务与无损升级
android
_一条咸鱼_3 小时前
Android Runtime即时编译触发条件与阈值深度解析(38)
android·面试·android jetpack
Aridvian3 小时前
如何使用EventBus?
android
用户2018792831673 小时前
SystemUI 开发实战故事:手机 "公共设施总管" 的修炼手册
android