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

news2024/11/16 23:40:48

目录

  • 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.coloradmin.cn/o/1033070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拼多多API接口解析,实现根据ID取商品详情

拼多多是一个流行的电商平台,它提供了API接口供开发者使用。要根据ID获取商品详情,您需要使用拼多多API接口并进行相应的请求。 以下是使用拼多多API接口根据ID获取商品详情的示例代码(使用Python编写): import requ…

LeetCode【42. 接雨水】

我不喜欢等人,也不喜欢被别人等 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数…

打开深度学习的锁:(2)单隐藏层的神经网络

打开深度学习的锁 导言PS:神经网络的训练过程一、数据集和包的说明1.1准备文件1.2 需要导入的包 二、构建神经网络的架构三、初始化函数四、激活函数4.1 tanh(双曲正切函数)函数 五,前向传播六、损失函数七、后向传播八、梯度下降…

代码随想录算法训练营第23期day3| 203.移除链表元素 ,707.设计链表,206.反转链表

目录 一、链表 基础操作 二、(leetcode 203)移除链表元素 1.使用原来的链表 2.设置虚拟头结点 三、(leetcode 707)设计链表 四、(leetcode 206)反转链表 1.双指针法 2.递归法 一、链表 单链表定义…

SpringMVC学习笔记——1

SpringMVC学习笔记——1 一、SpringMVC简介1.1、SpringMVC概述1.2、SpringMVC快速入门1.3、Controller中访问容器中的Bean1.4、SpringMVC关键组件的浅析 二、SpringMVC的请求处理2.1、请求映射路径配置2.2、请求数据的接收2.2.1、键值对方式接收数据2.2.2、封装JavaBean数据2.2…

JavaBean专项练习(学生信息管理系统)(增删改查)(每步详细解释和思路)

/* 题目: 定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据学生: 1. 学号 2.姓名 3.年龄要求: 1.再次添加一个学生对象,并在添加的时候进行学号唯一的判断2. 添加完毕后,遍历所有学生信息3. 通过id删除学生信息,如果存在则删除,如果不存在则提示删除失败4. 删除完毕之…

tensorflow-卷积神经网络-图像分类入门demo

猫狗识别 数据预处理:图像数据处理,准备训练和验证数据集卷积网络模型:构建网络架构过拟合问题:观察训练和验证效果,针对过拟合问题提出解决方法数据增强:图像数据增强方法与效果迁移学习:深度…

网页版的 Redis 可视化工具来了,已开源?

轻量级Redis缓存图形化管理工具,包含redis的5种数据类型的CRUD操作 软件架构 后端 springboot 2.2.2.RELEASEJDK 1.8jedis 3.2.0commons-lang3 3.5hutool-core 5.1.1fastjson 1.2.62h2database 1.4.200 前端 vue-admin 1.0.5axios 0.15.3element-ui 2.13.0font-…

海外媒体发稿:海外汽车媒体推广9个方式解析

根据下列9个国外汽车媒体推广方式,企业能够在国际范围内突破边界,获得领域关心。这将帮助企业完成国际化发展发展战略,扩展市场占有率和提升盈利空间。【华媒舍】国外全媒体发表文章将会成为企业完成这一目标的重要方式,为企业带来…

Caton Media Xstream: 重新定义实时内容交付服务

// 编者按:随着公共互联网愈加复杂,best effort的基本原型已无法满足越来越多的有QoS保障需求的实时内容交付服务。而专线、卫星等传统解决方案存在部署成本高、周期长等问题,无法快速响应各类需求。LiveVideoStackCon邀请到了科腾科技的魏…

解决:Typora上传图片后本地显示不出来

在配置好PicGo、github以及Typora后,为了更好部署博客,将图片的偏好设置改为上传图片,会出现一个问题: github上图片已上传成功,但是本地Typora的图片不显示,这里进行配置: 文件——>偏好设…

Oracle 11g RAC部署笔记

搭了三次才搭好,要记录一下。 1. Oracle 11g RAC部署的相关步骤以及需要的包,可以参考这里。 Oracle 11g RAC部署_12006142的技术博客_51CTO博客Oracle 11g RAC部署,Oracle11gRAC部署操作环境:CentOS7.4Oracle11.2.0.4一、主机网…

安卓玩机搞机----不用刷第三方官改固件即可享受“高级设置”的操作 ChiMi安装使用步骤

很多玩友特别喜欢第三方作者修改的带有高级设置的官改包。因为他可以随意修改系统里面的有关设置选项。包括但不限于修改状态栏 显示日期 秒等等的操作。 第三方带高级设置的官改 一般官改带高级设置的类似与 今天给大家分享下不用刷这些官改包即可享受高级设置的操作。 红米…

Android面试题汇总(三)

Android 四大组件相关 1、Activity与Fragment之间常见的通讯方式 对于Activity与Fragment直接的相互调用: 1、Activity调用Fragment直接调用就好了,Activity一般是持有Fragment实例的。或者通过Fragment的id或者tag获取Fragment的实例 2、Fragment调用A…

CRM系统主要包括哪些功能?

CRM系统应该要包括的功能总结为3大方向—— 核心必须要具备的功能常见尽量要有的功能可选有了自然更好的功能 以我们公司用的简道云CRM系统模板为例:https://www.jiandaoyun.com 01 核心必须要具备的功能 核心功能决定了系统是否能够被纳入CRM类别,这些…

升级pip

升级pip 报错提示: WARNING: You are using pip version 19.1.1, however version 20.0.2 is available. You should consider upgrading via the ‘python -m pip install --upgrade pip’ command. 解决办法 py -m pip install --upgrade pip记得关掉梯子 如果…

全面重构存储系统,释放AI时代全新数据价值

《失控》作者凯文凯利做出判断: “不管你从事任何商业,你的生意现在就是数据生意。”一言蔽之,数据已是当今商业社会和经济发展的基石。企业的生产研发、经营管理和销售服务等所有环节愈发离不开数据,数实融合的加速为产业发展带来无限可能。…

视频编解码器H.264和H265有什么区别?

对于大型视频文件来说,视频编解码器至关重要,它可以将文件压缩为较小的尺寸,从而可以更轻松地存储和加快传输速度。而两种最常用的编解码器是H.264和H.265,那么它们两者之间有什么区别,哪一个更好呢? 1. 什…

https SSL证书使用 git bash 解密

申请域名证书后,有些证书下载时强制加密。 在使用时,比如在AWS ACM中使用时,不能用加密的证书。所以这里讲下怎么解密。 首先,加密一般加密的是公私钥中的私钥,即private.key。 填写密码,下载证书&#x…

玩转蓝牙墨水屏电子标签(一)点灯

对于垃圾佬的生活来说,每天逛海鲜市场是必不可少的生活片段,这不,手抖一下又刷到了一个东付的电子标价签。 价格合理,2块钱一个不包邮,直接买了N个。。。算了一下一个3.5,然后拿到群去炫耀了下,…