记录:移动设备软件开发(Android项目组织结构)

目录

  • Android项目管理结构
  • ui管理
  • ViewGroup
  • UI控制

使用Android Studio开发Android应用简单、方便,除了创建Android项目,开发者只需要做两件事情:使用activity_main.xml文件定义用户界面:打开Java源代码编写业务实现。但对于一个喜欢刨根问底的学习者来说,这样的开发方式不免让人迷惑:
findViewById(R.id.show)代码中的R.id.show是什么,从哪里来?
为何setContentView(R.layout.activitty_main)代码设置使用activity_main.xml文件定义的界面布局?
所以就有了这篇Android项目组织结构探究
在这里插入图片描述

Android项目管理结构

在这里插入图片描述
manifests:全局文件
java:相应的Java文件
res:资源文件
而在资源文件res中
在这里插入图片描述
drawable:可绘制的,用于存放图片资源
layout:指布局,用于存放Android布局文件,也就是控制页面显示什么的
mipmap:指纹理,用于设置图片
在这里插入图片描述
dpi:指分辨率,也就是单位长度里像素点的数量
其中的hdpi,mdpi,xdpi的指的是诸如长度深度一类的不同方向的分辨率
在这里插入图片描述
values下保存相应的颜色,字符串等资源

ui管理

View类位于Android.view包中,而View类的子类,例如TextView一般位于android.widget中
Android中的View常用属性有:
android:id属性, id唯一标识一个组件
android:background 一般是设计背景图片或背景颜色
android:padding 设置内容的内边距
在这里插入图片描述

paddingBottom 下边距
paddingLeft 左边距
paddingRight 右边距
paddingTop 上边距
paddingStart 左边距
paddingEnd 右边距

ViewGroup

ViewGroup是View类的子类,ViewGroup作为是View的容器,控制View摆放
ViewGroup控制其子组件分布时依赖两个类
(1)ViewGroup.LayoutParams类
(2)ViewGroup.MarginLayoutParams类
其中在ViewGroup.LayoutParams类中,主要设置高度和宽度。可以填写精确的数值,也可以是match_parent(与父容器相同)或wrap_content(包裹内容)
其中在ViewGroup.MarginLayoutParams类中,主要设置组件的外边距
android:layout_marginTop:设置组件的外上边距
android:layout_marginBottom:设置组件的外下边距
android:layout_marginLeft:设置组件的左外边距android:layout_marginStart:也是设置组件的左外边距,但必须是SDK最低版本必须大于API17.
android:layout_marginRight:设置组件的右外边距android:layout_marginEnd:也是设置组件的右外边距,但必须是SDK最低版本必须大于API17.

UI控制

控制UI界面的四种方式
(1)使用XML布局文件控制UI界面
(2)在JAVA代码中控制UI界面
(3)使用XML和JAVA代码混合控制UI界面
(4)开发自定义的View

使用XML控制UI界面
1.首先在res下的layout目录下,编写.xml文件,
2.在Activity中使用setContentView(R.layout.activity_main);来显示XML中布局的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/115306.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技

备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…

Mybatis SQL构建器

上一篇我们介绍了在Mybatis映射器中使用SelectProvider、InsertProvider、UpdateProvider、DeleteProvider进行对数据的增删改查操作;本篇我们介绍如何使用SQL构建器在Provider中优雅的构建SQL语句。 如果您对在Mybatis映射器中使用SelectProvider、InsertProvider…

yolov5使用最新MPDIOU损失函数,有效和准确的边界盒回归的损失,优于GIoU/EIoU/CIoU/EIoU(附代码可用)

文章目录 1. 论文1.1. 主要目的1.2. 设计思路2 代码3.总结1. 论文 MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression (一个有效和准确的边界框损失回归函数) 论文地址 1.1. 主要目的 当预测框与边界框具有相同的纵横比,但宽度和高度值完全不同时,大多数…

基于Java的高校竞赛管理系统设计与实现(亮点:发起比赛、报名、审核、评委打分、获奖排名,可随意更换主题如蓝桥杯、ACM、王者荣耀、吃鸡等竞赛)

高校竞赛管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述4.2 系统角色 五、系统…

操作系统、进程和线程

目录 一、操作系统 二、进程/任务(Process/Task) 1. 什么是进程/任务 2. 进程控制块抽象(PCB Process control Block) 3. CPU分配 —— 进程调度(Process Scheduling) 4. 内存分配 —— 内存管理&…

expected ‘,’ after expression in R【R错误】

出现如下错误: 在红色叉的位置,会有提示“expected . after expression”,咋一看出现红色叉的位置没有任何的错误,怎么会出现错误呢? 解决办法: 寻找这个代码第一次出现红色叉的位置,看其是否…

QT---day2---9.18

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

please choose a certificate and try again.(-5)报错怎么解决

the server you want to connect to requests identification,please choose a certificate and try again.(-5)

【C++】vector中的常见函数和使用

前言 感觉vector在目前阶段很常用,就总结记录一些vector的用法 方便自己忘记的时候查找 因为是自用,所以我直接放代码了,只说明如何使用,以及一些小的注意点,对于函数具体实现过程,在这篇文章中&#xff…

LLMs资源

一、ChatGPT 《中科院学术专业版 ChatGPT》: gpt_academic项目针对了中科院日常科研工作,基于 ChatGPT 专属定制了一整套实用性功能,用于优化学术研究以及开发日常工作流程。其中内置的工具,包括但不限于以下这些:学术…

使用 PyTorch 的计算机视觉简介 (1/6)

一、说明 Computer Vision(CV)是一个研究计算机如何从数字图像和/或视频中获得一定程度的理解的领域。理解这个定义具有相当广泛的含义 - 它可以从能够区分图片上的猫和狗,到更复杂的任务,例如用自然语言描述图像。 二、CV常见的问…

flask_apscheduler实现定时推送飞书消息

需求场景: 实现一个flask服务,通过接口控制一个定时任务任务(对酒店订房情况进行检查)的开启和停止。要求定时任务完成后,可以通过飞书机器人推送任务完成的消息。 展现效果: 启动定时任务 关闭定时任务…