成功开发Android app-4(布局)

安卓手机APP开发的实践_点击行为 这是手机开发的实践篇,有示例代码和开发思路的讲解。 阅读详情

布局

在android 开发中基础组件时view 类似于html的div
ViewGroup 为一个view组 类似于html中的 hgroup

基础属性

android:layout_width 宽度
android:layout_height 高度
match_parent 填充最大宽和高
wrap_content 自适应高度和宽度,子控件的总和
dp 长度单位
sp 大小单位
android:background 背景

绝对布局(API3中已弃用)

AbsoluteLayout 绝对布局
API3中已弃用这里就不详细说了。

线性布局

LinearLayout 线性布局
android:weight:权重 (常用来划分组件模块)
android:layout_weight 属性为各个子视图分配权重
android:orientation: 排列方向

  1. Vertical 垂直
  2. Horizontal 水平

android:gravity:对齐方式

  1. left 左对齐
  2. right 右对齐
  3. center 居中对齐
  4. top 顶部对齐
  5. bottom 底部对齐

android:ignoreGravity: 忽略对齐方式

表格布局(基于线性布局的一种布局)

TableLayout 表格布局

android:collapseColumns: 设置需要被隐藏的列的序号
android:shrinkColumns: 设置允许被收缩的列的列序号
android:stretchColumns: 设置运行被拉伸的列的列序号

序列号从0 开始

android:layout_column=“2”: 合并2列
android:layout_span=“4”: 合并4行

相对布局

RelativeLayout 相对布局

相对布局不能同时设置高度为 wrap_content 和子布局为layout_alignParentBottom,这样会产生一个循环依赖

android:ignoreGravity

手机左上角为(0,0)
往下为正 往右为正

相对定位的属性
//相对父容器定位
android:layout_alignParentTop 相对顶对齐
android:layout_alignParentLeft 相对父容器左对齐
android:layout_alignParentRight 相对父容器右对齐
android:layout_alignParentBottom 相对父容器底对齐
android:layout_centerHorizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInParent 垂直、水平居中
//相对兄弟容器
android:layout_toRightOf 兄弟的右边
android:layout_toLeftOf 兄弟的左边
android:layout_alignBaseline 同一水平线对齐
android:layout_below 基于…的下方
android:layout_above 基于…的上方
//外边距
android:layout_margin 外边距
//内边距
android:padding 内边距

帧布局

FrameLayout
属性:
android:foregroundGravity: 定义了前置可绘制区域的定位

  1. bottom 下端
  2. center 中心
  3. left 左端
  4. right 右端
  5. top 上端
  6. fill 铺满
    android:measureAllChildren: 检测所有孩子的可见状态
  7. true
  8. false

网格布局

GridLayout 网格布局
在一个矩形的网格中来进行子组件的布局
android:alignmentMode 定义子组件中是否有间隔(默认是alignMargins)

  1. alignMargins 子组件之间没有边界
  2. alignBounds 子组件之间有边界

android:columnCount 设置自动定位子视图时创建的最大列数
值为int类型数据

android:columnOrderPreserved 设置使列边界显示的顺序和列索引的顺序是否相同

  1. true 相同(默认)
  2. false 不相同

android:orientation: 排列方向

  1. Vertical 垂直
  2. Horizontal 水平

android:rowCount 设置自动定位子视图时创建的最大行数
值为int类型数据

android:rowOrderPreserved 设置使行边界显示的顺序和行索引的顺序是否相同

  1. true 相同(默认)
  2. false 不相同

android:useDefaultMargins 当未手动设置视图的布局参数时,是否告诉网格布局使用缺省的外边距

  1. true 使用(默认)
  2. false 不使用
使用Android Studio 开发APP入门经验 本人新晋菜鸟一只,目前正在学习当中,我把自己的一些入门经验分享给大家,希望对一些像我一样刚入门的小伙伴有些帮助,若有什么写的不对的地方还望各位大神批评指出。Android studio作为现在一个主流的安卓开发工具,这里我将介绍如何在Android studio中创建一个APP项目以及编写一个简单的App,并在以后经验中介绍其他有关Android studio的操作和编程方法。 阅读详情

相关推荐

安卓APP(3)——安卓布局控件

安卓APP(3)——安卓布局控件

weixin_50546241的博客 1572

安卓app入门(2)界面布局和控件

1.线性布局(LinearLayout) 线性布局等于创建了一个框,用来放置其中包含的控件,同时线性布局可以互相包含嵌套 属性有长宽大小、位置、水平或垂直排布等 如垂直排布时: 水平排布时: 使用·android:gravity=""可以选择顶部开始或居中等排列方式 2.常用控件 在线性布局下(LinearLayout)按钮、文本框 通用属性 1.控件id 每个空间应当有唯一的控件id 如:android:id="@+id/button1" 2.控件宽度高度 android:layout_width=

qq_40508193的博客 1487

安卓App开发 篇二:Android UI和布局

Figma上的Android UI Kit设计的界面原型并不能直接自动转换为Jetpack Compose代码,因为Figma是一个设计工具,而Jetpack Compose是Android平台上的声明式UI框架,它们分别处于设计和开发的不同阶段。当你调用一个可组合函数时,它就被认为是组合的一部分,这意味着它的输出将被包含在当前的UI中。基于槽位(slot-based)的布局是一种灵活的布局方式,它允许你创建可复用的、可扩展的组件,这些组件可以预留出位置或“槽位”,供外部代码填充特定的内容。

生活在别处 1383

ANDROID APP的页面布局(Part I)

做一个好的APP自然是不能缺少一个好的漂亮的且合理的页面布局了,ANDORID里面支持的布局大致上有下列即种,根据界面的需要使用不同的布局可达到事半功倍的效果,这个跟做HMTL的页面的原理是一样,好的页面看起来就是舒服,而且容易维护。 1. Linear Layout(线性布局,横向或者竖向) 2. Relative Layout(相对布局) 3. Table Layout(表格布局) 4. G...

心雨楼 794

从零到一:用STM32 FOC算法驯服无刷电机的艺术

本文详细介绍了如何使用STM32和FOC算法实现无刷电机的高性能控制。从硬件搭建、参数识别到闭环调节,一步步解析FOC算法的核心原理与调优技巧,帮助开发者掌握电机控制的关键技术,实现从零到一的精准驯服。

kkk56的博客 918

RaiDrive+AList保姆级教程:5分钟搞定OneDrive/百度网盘挂载到本地(附WebDAV配置)

本文提供RaiDrive+AList的保姆级教程,5分钟内实现将OneDrive/百度网盘挂载到本地的详细步骤,包括WebDAV配置。通过AList统一转换云存储协议,RaiDrive虚拟磁盘挂载,显著提升多网盘管理效率,适合需要跨平台操作文件的用户。

weixin_28331555的博客 456

android studio新手安卓开发心得(一)

在我要使用fragmentManager时,具体是要在mainActivity中初始化我定义的某碎片, 要使用fragmentManager声明一个事务, 一开始时用的val tr = fragmentManager.beginTransaction() 在要用这个tr进行replace时,tr.repalce(R.id.XFrameLayout,我定义的继承了Fragment的某碎片), 出现了报错 !!! ①Type mism...

渔火江渚上的博客 737

Gazebo仿真环境下的强化学习实现

实际上利用Gazebo进行强化学习无非是环境获取上的不同,Gazebo的环境控制需要使用ROS服务进行控制,状态可以通过Gazebo进行获取,同时某些必要数据需要从话题中获取,最重要的是组织获取 的数据(通过话题等)与控制Gazebo的仿真步骤之间的组合。强化学习的手段与传统算法无异,强化学习方法最重要的是要确定动作空间、状态空间、奖励空间,这三个空间是work的前提。在笔者自己的环境中,将获取里程计的话题以及获取激光点的数据替换成为了自己的本机的仿真环境匹配的话题。

Moresweet 猫甜 6450

androidStudio开发安卓APP的五种框架布局界面设计

开发安卓APP的五种框架界面设计 开发安卓app,我们需要美观的界面,然后这些界面,我们必须要掌握的就是对应的框架布局,本次博客,我们将进行app界面的五种框架布局,并给出对应的界面设计的例子 (一)、线性布局框架 1、简单介绍如下: 2、实例如下: 计算器的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm...

qq_42451251的博客 1万+

【CAN通讯系列18】- NM在干什么?休眠唤醒

同时针对不同休眠或唤醒场景,网管报文的userdata有所区别,如何做到场景与网管报文内容一一映射,通常会定义另一帧报文,用来表明当前是哪个或哪几个唤醒条件或休眠条件满足。又或者如果用户发现汽车电量不充足了,那么会有充电需求,插枪充电,这时如果插上慢充枪,那么OBC会先被唤醒,识别出插枪行为及其慢充枪的连接状态,然后OBC唤醒BMS和其他相关的控制器进行充电。也就是说,通过对一个又一个整车功能和应用场景的详细分析,最终能够汇总出整车所有的休眠唤醒场景需求,通常会用一个表格来管理,俗称休眠唤醒表。

menghuyouyou的博客 1168

LSTM量化选股实战:从数据清洗到回测归因的工程化闭环

LSTM(长短期记忆网络)是一种专为建模长程依赖而设计的循环神经网络,其门控机制能有效应对金融时序数据的非线性、高噪声与动态演化特性。相比传统统计模型或简单RNN,LSTM在股价趋势建模中展现出更强的鲁棒性与泛化能力,尤其适合处理日频多因子时序信号。其技术价值不仅在于提升预测精度,更在于支撑可归因、可审计的量化策略工程实践——从特征构建、标签定义到滚动回测,每一步都需严防未来信息泄露与过拟合风险。典型应用场景包括A股多因子选股、行业轮动信号生成及Alpha组合优化。本文聚焦LSTM在真实量化场景中的落地难点

weixin_33158887的博客 398

安卓APP开发基础

目录安卓工程构建和第一APP运行 安卓工程构建和第一APP运行 嵌入式学习安卓目的其实是为了掌握简单的安卓APP开发,最重要的目的并不是为了开发APP,而是为了了解APP开发的整个过程,方便为安卓开发工程师提供SDK包,也就是如何在手机APP上实现点灯等控制硬件的一系列操作。 ...

zhuguanlin121的博客 1849

qemu(2) -- 定制开发板

向qemu源码中添加自定义开发板

xflm的博客 842

安卓app开发系列之-布局基础

本文介绍了 Android 布局的基础知识,包括常见的布局类型如和,同时讲解了嵌套布局的使用与注意事项。此外,还列出了布局中常用属性及其作用。掌握不同布局的使用场景和特点,将帮助你创建出更加灵活和美观的用户界面。在后续的开发中,可以善用这些知识,设计和实现更加复杂的 UI。如有疑问或需进一步了解,欢迎随时提问!

Jamson 1439

GameFramework框架详解之 DataTable配置表模块

一.前言: DataTable模块是项目的配置表模块,配置表一般是从excel导出csv/json/xml格式的,之所以是excel作为源文件,原因是因为策划同学使用配表最方便。然后一键导出到项目中,除了csv/json/xml配置文件外,一般还会伴随着导出配置的实体类,这样研发同学就可以使用了。GameFramework的DataTable模块也是秉持着这种一贯的策略来实现的。 二.DataRow DataRow在excel数据表中,对应的是一行数据,而在代码中对应的其实就是一条数据对象。 接口IData

TxNet 4726

【异常】Cursor报错We‘re having trouble connecting to the model provider. This might be temporary

在使用Cursor编辑器进行AI交互操作时,界面弹出如下报错提示,导致无法正常调用模型服务,影响使用流程:We’re having trouble connecting to the model provider. This might be temporary - please try again in a moment. 该报错核心含义为Cursor编辑器无法正常连接至背后的AI模型服务提供商(如OpenAI、Anthropic等),属于连接类异常,并非编辑器本身运行故障。经排查,该报错不具备破坏性,仅

奶爸的编程之路,也就一周冷个三天 1691

基于安卓android studio 的 菜谱食谱APP设计

一 项目概述 菜谱APP或者食谱APP 是基于安卓开发的一个APP,项目包含前台安卓端和后台管理系统,前台安卓端可以进行 查看推荐菜谱,菜谱搜索,收藏菜品 ,菜品排行榜,菜品详情,个人中心,基本信息,登录,注册等功能,后台管理系统主要维护菜品,维护前台注册的用户。东西非常多。 二 项目开发工具和技术 开发工具使用android studio 后台服务开发 idea或者eclipse 模拟器:逍遥 夜神或者雷电模拟器 三 项目功能结构图 四 项目开发实现 菜谱首页效果: 首页包含顶部导航,菜品分类 ,

coder1998的博客 3万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android App开发基础

一 App的开发特点 1.1 App的运行环境 1.2 App开发语言 1.3 java语言开发 1.4 Kotlin语言开发 1.5 XML 1.6 App连接的数据库 二 App的工程结构 2.1 App工程目录结构 2.2 构建工具Grade 2.3 编译配置文件build.gradle 2.4 运行配置文件AndroidManifest.xml 2.4.1 application 2.4.2 activity 三 App的设计规范 3.1 界面设计与代码逻辑 3.2 完整的页面创建过程包括三个步骤:

缘友一世的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

安卓APP开发流程

安卓(Android)APP 开发是一个 “需求→设计→开发→测试→发布→迭代” 的完整闭环,核心围绕“Java/Kotlin 语言”+“Android Studio 工具”+“Android 系统规则”

2501_94331842的博客 1867

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android获取其他app布局,Android Studio查看其它APP的布局结构

概述日常使用别家的APP过程中,会遇到一些比较好看的布局,这时候我们就想学习一下别人的布局结构,以便参考。(1)手机连接电脑、设置手机为USB调试模式(2)运行Android Studio,打开 Tools--Android--Android Device Monitor注意:android Studio3.1开始只能通过命令行的方式启动Android Device Monitor。或者手动打开文...

weixin_34822215的博客 4798

Android app开发布局以及简单控件总结

App的开发和Web的开发有内在的一致性,逻辑上的相似性。具体体现如下: 1.标签代表空间或者元素 2.可以直接在标签上写属性 3.可以用id标识标签,通过id选择该标签并被设置 4.从大逻辑上讲标签在做的都是展示、交互、反馈

weixin_53946012的博客 1037

不会Java?没关系,用C/C++做安卓APP,Qt for Android开发

首先Qt就不多说了,大家应该都有了解,跨平台的应用程序开发框架,Windows、Linux、Android、IOS(网上听说是可以支持的,没有试过)等一些平台都可以使用,最关键的是基本同一套代码,不用怎么修改就可以切换平台,相当方便。1. 下载Qt软件,我用的是Qt-opensource-windows-x86-5.12.0版本的,注意:后续插件的版本和Qt的版本貌似要有对应,有的版本不对可能不行,尽量用我推荐的版本。安装没什么好说的,Qt安装的时候注意选择安卓的插件。3. 下载JDK,版本为8u201。

ic2121的博客 1万+

安卓开发——做一个能定时唤起其他APP的闹钟程序

做一个能定时唤起其他APP的闹钟程序一、准备工作:二、从一个app唤起其他app功能的核心代码:三、主页面:(1)XML布局代码(2)界面截图(3)后台Java代码四、闹钟界面:(1)XML布局代码(2)界面截图(3)后台Java代码五、运行测试:(1)打开闹钟app,点击启动QQ闹钟(2)设置闹钟时间(3)闹钟设置成功,等待到达指定时间(4)QQ成功按时被唤起(5)把Android工程导出成apk在自己手机上安装成功运行 一、准备工作: 要让一个app唤起另一个app,首先要做的是要知道被唤起app的包名

fjnu_se的博客 4406

安卓APP开发之界面布局

这里写目录标题页面布局类型RelativeLayout中的子控件常用属性1、相对于父控件2、相对给定Id控件3、居中安卓中的基础控件 页面布局类型 相对布局结构: < RelativeLayout > < TextView /> < /RelativeLayout > 控件的属性控制: android:layout_width="match_parent" 宽度 android:layout_height="match_parent" 高度 match_pare

Yangyingchungood的博客 2847

开发一个安卓app-备忘录

效果图 工程目录: AddActivity代码: package cn.fanting.notpadnew; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.support.v7.ap...

qq_40308101的博客 9542

02 java ---- Android 基础app开发

/ 自定义的点击事件处理类,实现了View.OnClickListener接口 继承@Override//方法重写触控事件 有触控这日志输出 没用toast因为toast得调用主函数中//Toast.makeText(this, "按键一被按下", 0).show();//没用toast因为toast得调用主函数中System.out.println("按键一被按下");break;//Toast.makeText(this, "按键二被按下", 0).show();

prppr_的博客 7679
上一篇: 成功开发Android app-3(文件详解及生命周期)
下一篇: 成功开发Android app-5(视图)
IT_Joliu
博客等级 码龄9年 32粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值