安卓开发之前端

2023-11-13

安卓开发之前端界面的搭建

前段时间因为网络编程这门课要做一个课程project,题目是本地服务器的开发,需要开发一个安卓客户端,于是就把去年小学期学的那点安卓知识捡起来了(心累)

想到去年小学期学的那点安卓真的不算什么,就是一些很简单的东西,所以为了做好这次前端,努力学了很多安卓的前端搭建知识,毕竟是数媒人,在前端上可不能输给其他专业的(哼~)

这次的安卓开发需求比较简单,要求的功能不多因此界面也没有几个。

界面清单

  • 连接服务器界面
  • 登录界面
  • 注册界面
  • 首页界面
  • 消息界面
  • 社区界面
  • 设置界面
  • 联系人界面
  • 添加好友界面
  • 好友聊天界面
  • 社区消息编辑界面
  • 添加联系人界面

有些界面其实差不多,基本上要用到以下一些组件:

  • 按钮Button
  • 文本显示TextView
  • 文本域Text Field
  • 图表charts
  • 工具条toolbar
  • 浮动按钮fab
  • 列表ListView
  • 页面切换Tab
  • 刷新

接下来我就介绍一些组件的使用

一、开发环境

Android Studio2.0

Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。

我以前用的是eclipse with ADT进行开发的,现在安卓开发基本上主流的就是这两种IDE,eclipse是老牌的java IDE,自然也支持安卓开发。我用eclipse的时候觉得他对界面的可视化编辑比较差,而且开模拟器会很卡,然后这次决定采用AS进行开发,AS对界面的可视化编辑支持比较好,模拟器比较快(我一般是用真机调试)但是打代码的时候总有一种我在写C++的错觉…

还有要说的一点是,eclipse和AS的项目结构是不一样的!在eclipse里面一个project就是一个app,但是在AS里面project不是app的意思,而是一个项目的意思,这个项目底下可以有多个app同时存在,当你运行的时候要选择运行哪个app。AS在侧边栏可以支持多种文件结构视图,通常我是看Android 视图,这样子看起来就和eclipse的结构差不多了。

image
image

关于文件结构、文件功能我就不多说了,网上有很多入门资料。

二、定制自己的ToolBar

通常新建一个项目安卓会自动的给你界面加上一个丑丑的toolbar,而且不好改他的功能,因为有时候我们需要在toolbar加上按钮来跳转,所以为了解决这个问题我们可以定制自己的toolbar。

先看一下效果:

image

这是统一模板:建立一个layout文件,layout_common_toolbar.xml

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:id="@+id/toolbar_content_rlyt"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:background="@color/bg_toolbar">

        <Button
            android:id="@+id/toolbar_left_btn"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_alignParentLeft="true"
            android:padding="50dp"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:background="#00000000"
            android:visibility="invisible"/>
        <TextView
            android:id="@+id/toolbar_left_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/toolbar_left_btn"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:textColor="#fff"
            android:textSize="15sp"
            android:text="返回"
            android:visibility="gone"
            />

        <TextView
            android:id="@+id/toolbar_title_tv"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:layout_centerInParent="true"
            android:singleLine="true"
            android:text="标题"
            android:textSize="20sp"
            android:textColor="#fff"
            android:maxEms="10"
            android:visibility="invisible"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_toRightOf="@id/toolbar_title_tv"
            android:layout_centerVertical="true">
            <Button
                android:id="@+id/toolbar_right_btn"
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:gravity="center"
                android:layout_marginLeft="70dp"
                android:visibility="invisible"
                android:background="#00000000"
                android:textSize="15sp"
                android:textColor="#fff"/>

            <TextView
                android:id="@+id/toolbar_right_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_marginLeft="70dp"
                android:textColor="#fff"
                android:textSize="15sp"
                android:text="更多"
                android:visibility="gone"/>

            <Button
                android:id="@&#
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓开发之前端 的相关文章

  • linux系统 <linux/fs.h>头文件查找

    起因 因为在做模块实验时要对register chrdev函数绘画流程图 于是我就想着去找找看到底这个函数在哪 首先根据这个笔记来看 Linux内核API register chrdev 极客笔记 deepinout com 应该在linu
  • CJson-修改浮点数的位数

    现状 调用cJSON Print 将组成的json转为字符串格式时 对于浮点数的位数是不固定的 length sprintf char number buffer 1 15g d 源代码里用的是 1 15g 代表输出字符最少一位 最大15位

随机推荐

  • 【技术方案】springboot全局异常处理方式

    springboot全局异常处理方式 springboot全局异常有两种处理方式 第一种方案 继承DefaultErrorAttributes类 重写getErrorAttributes方法 代码如下 Slf4j RestControlle
  • SyntaxError: missing ) after argument list

    消息 语法错误 参数列表后面缺少 错误类型 SyntaxError 什么地方出错了 有一个函数在调用时出现错误 这可能是一个错误 丢失运算符或者转义字符等 示例 因为没有使用 操作符来连接字符串 JavaScript 认为 log 函数的参
  • Java 解析http返回的xml数据

    Java 解析http返回的xml数据 写成txt文件 需求 每小时抓取给定api接口返回的xml数据 把xml数据保存为XML文件 把xml数据转换txt文件格式数据 保存txt文件 文件名以yyyyMMddHH0000 txt和yyyy
  • FileZilla_Server快速搭建FTP服务器

    文档目的 介绍如何使用FileZilla Server软件在windows server服务器上搭建FTP服务器 注意 如果需要这个具及这个工具的视频操作教程 请点击 此处 下载 文档目的 介绍如何使用FileZilla Server软件在
  • CV第一篇:EDLines基础理论

    EDLines A real time line segment detector with a false detection control 简介 图像信息特征的描述大致分为角点特征 线特征和语义特征 点特征如harris sfit s
  • 关于C++ new和malloc的区别!

    一 前言 new和malloc的知识点 他们之间的关系 有什么异同 作为一个C 工程师是必须要了解清楚 在面试中该知识点也是经常会被问到的 所以在此文章 总结下new和malloc的区别到底在哪里 二 new和malloc两者的区别 2 1
  • java项目域名访问失败但IP访问正常

    1 域名访问失败但通过IP访问正常 发生此类型情况可能的原因如下 DNS 解析问题 域名访问失败可能是因为 DNS 解析出现了问题 导致域名无法解析成正确的 IP 地址 可以通过使用 nslookup 或 dig 命令来检查 DNS 解析是
  • 四种线程池拒绝策略

    一 前言 线程池 相信很多人都有用过 没用过相信的也有学习过 但是 线程池的拒绝策略 相信知道的人会少许多 二 四种线程池拒绝策略 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时 如果还有任务到来就会采
  • 墨者-SQL注入漏洞测试(报错盲注)

    墨者 SQL注入漏洞测试 前言 一 sqlmap 二 手注 1 报错注入 2 时间注入 3 联合查询union被过滤 总结 前言 本题为墨者学院在线靶场 进入题目发现是个登录界面 找了好久 最后在关于平台停机维护的通知的页面找到了注入点 判
  • Acwing 892. 台阶-Nim游戏

    此时我们需要将奇数台阶看做一个经典的Nim游戏 如果先手时奇数台阶上的值的异或值为0 则先手必败 反之必胜 证明 先手时 如果奇数台阶异或非0 根据经典Nim游戏 先手总有一种方式使奇数台阶异或为0 于是先手留了奇数台阶异或为0的状态给后手
  • (代码练习)1~100中出现数字9的个数---C语言

    出现9的数字有哪些 出现整十之前的数字就是含有9的数字 所以方法一 打印整十前面的数 运行结果 这种方法显得不够专业 而且漏掉了90及其以后十位为9的数 下面介绍方法二 思路 给一个循环从1遍历到100 拿到每个数据后进行一下操作 a 通过
  • MySQL-分库分表详解(三)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • 手动加载logback配置文件

    前言 自己写了个压测的main方法 这里主要介绍如果在main方法中输出logback日志 正文 import java io File import java io IOException import org slf4j LoggerF
  • 网站报错 :SLQSTATE[HY000]:General error:145 Table ‘./**@002******@/002ecn/ey_config‘ is mar

    后台使用过程中 因为某个操作而出现报错 SQLSTATE HY000 General error 145 Table 002 002ecn ey config is marked as crashed and should be repai
  • 《Linux运维实战:Centos7.6一键离线部署docker19.03.9》

    文章目录 一 部署背景 三 部署工具 三 部署演示 总结 整理不易 如果对你有帮助 可否点赞关注一下 一 部署背景 由于业务系统的特殊性 我们需要面向不通的客户安装我们的业务系统 而作为基础组件中的docker针对不同的客户环境需要多次部署
  • 通过docker搭建skywalking

    简述 这里引用skywalking官方网站上简介 分布式系统的应用程序性能监视工具 专为微服务 云原生架构和基于容器 Docker K8s Mesos 架构而设计 SkyWalking 是观察性分析平台和应用性能管理系统 提供分布式追踪 服
  • IPO 后,北森不断超越自身

    北森锐意变革的思路值得很多行业借鉴 数科星球原创 作者丨苑晶 编辑丨大兔 在所有 HR SaaS 软件中 北森较为独特 这种独特不光体现在其切入赛道的一体化产品 也体现在它所走过的发展路径 2023 年年中 当人口红利消逝之际 人们对人力资
  • 面试题_Java源文件中可以有多个类,为什么只能有一个public类?

    Java中源文件中可以有多个类 最多只能有一个public类 如果源文件中有多个类 那么只能有一个类是public类 如果有一个类是public类 那么源文件的名字必须和这个类的名字完全相同 扩展名为 java java程序的入口是main
  • 计算机网络——数据链路层の选择题整理

    数据链路层的功能 1 数据链路层协议的功能不包括 A 定义数据格式 B 提供结点之间的可靠传输 C 控制对物理传输介质的访问 D 为终端结点隐蔽物理传输的细节 解析 选D 对于A 定义数据格式 即采用帧作为传输单元 对于B 提供结点之间的可
  • 安卓开发之前端

    安卓开发之前端界面的搭建 前段时间因为网络编程这门课要做一个课程project 题目是本地服务器的开发 需要开发一个安卓客户端 于是就把去年小学期学的那点安卓知识捡起来了 心累 想到去年小学期学的那点安卓真的不算什么 就是一些很简单的东西