安卓开发_安卓开发入门 - CSDN
安卓开发 订阅
《Android开发实战体验》是2013年海洋出版社出版的图书,作者是DevDiv移动开发社区。 展开全文
《Android开发实战体验》是2013年海洋出版社出版的图书,作者是DevDiv移动开发社区。
信息
作    者
DevDiv移动开发社区
定    价
55.00元
又    名
安卓开发
书    名
Android开发实战体验
出版时间
2013-1
出版社
海洋出版社
ISBN
9787502784607
页    数
252
子网划分定义
图书目录章节第1章 Android系统架构与初始化流程  1.1 Android发展历史回顾  1.2 系统架构  1.3 初始化流程  1.4 权限安全机制  第2章 Activity简介  2.1 Activity的架构设计  2.2 Activity的生命周期  2.3 旋转屏幕重新加载Activity  第3章 常用UI界面以及实现  3.1 缓冲界面  3.2 宫格界面  3.3 Tab界面  3.4 二级列表  3.5 抽屉效果  3.6 左右滑动效果  3.6.1 系统提供ViewFlipper  3.6.2 自定义ViewFlow  3.7 Gallery  3.8 悬浮框  第4章 ListView使用详解  4.1 ListView与Adapter的关系  4.2 ListView绑定EmptyView  4.3 自定义Adapter  4.4 ListView的使用技巧  第5章 定制控件  5.1 扩展系统控件  5.2 自绘控件  5.3 触屏事件处理  5.4 扩展ViewGroup类  5.5 定义控件属性  5.6 定制控件的style和theme  第6章 Drawable分类汇总  6.1 ColorDrawable  6.2 GradientDrawable  6.3 BitmapDrawable6  6.4 NinePatchDrawable  6.5 InsetDrawable  6.6 ClipDrawable  6.7 ScaleDrawable  6.8 RotateDrawable  6.9 AnimationDrawable  6.10 LayerDrawable  6.11 LevelListDrawable  6.12 StateListDrawable  6.13 TransitionDrawable  第7章 图像操作技巧  7.1 位图资源  7.1.1 加载位图资源  7.1.2 创建位图资源  7.1.3 保存位图资源  7.2 常用的位图操作  7.2.1 View转换为Bitmap  7.2.2 图片圆角处理  7.2.3 图片灰化处理  7.2.4 提取图像Alpha位图  7.2.5 图像变换  7.3 内存溢出(OOM)问题  第8章 布局优化  8.1 复用布局文件  8.2 布局的层次结构  8.2.1 Hierachy Viewer  8.2.2 创建高效的布局  8.2.3 合并布局  8.2.4 提高控件查找效率  8.3 布局文件延迟加载  第9章 消息模型  9.1 UI线程  9.2 消息系统与消息模型  9.2.1 消息系统构成要素和基本原理  9.2.2 消息模型基本原理  9.2.3 消息模型使用方法  9.2.4 Handler常见用法  第10章 网络通信  10.1 使用HttpURLConnection发送Post/Get请求  10.2 设置Proxy访问网络  10.3 实现文件下载断点续传  10.3.1 设计下载任务进度类DownloadBean  10.3.2 创建下载线程并可随时中断线程  10.3.3 设置网络链接读取资源的有效范围  10.3.4 使用RandomAccessFile随机读写文件  第11章 桌面组件AppWidget  11.1 AppWidget框架结构  11.1.1 AppWidget框架类  11.1.2 AppWidget框架相关类  11.2 AppWidget开发  11.2.1 AppWidgetProvider类的使用  11.2.2 AppWidget开发实例  11.2.3 实例改进  第12章 系统服务  12.1 系统服务简介  12.2 系统服务开发  12.2.1 电源服务开发  12.2.2 窗口管理服务开发  12.2.3 Layout扩展服务开发  12.2.4 Activity服务开发  12.2.5 Notification服务开发  12.2.6 闹钟服务开发  12.2.7 KeyGuard服务开发  12.2.8 位置服务开发  12.2.9 Vibrator服务开发  第13章 多媒体开发  13.1 Android多媒体系统简介  13.1.1 系统架构  13.1.2 系统功能  13.1.3 OpenCore简介  13.1.4 OpenMAX简介  13.2 MediaPlayer的使用  13.2.1 初始化和准备播放  13.2.2 播放控制  13.2.3 释放播放资源  13.2.4 视频播放  13.3 音频视频录制  13.3.1 使用Intent录制音频和视频  13.3.2 使用MediaRecorder录制音频和视频  13.3.3 原始音频录制与播放  13.4 Camera使用  13.4.1 运用Intent捕获照片  13.4.2 调用Camera组件捕获照片  13.5 SoundPool类的使用  13.5.1 SoundPool类简介与适用场合  13.5.2 使用SoundPool播放声音  第14章 图片异步加载及缓存  14.1 异步加载与缓存的重要性  14.2 垃圾回收机制与引用类型  14.2.1 Java的垃圾回收机制  14.2.2 Java引用类型  14.2.3 使用软引用构建缓存  第15章 移动广告平台  15.1 移动应用平台发展现状  15.2 移动广告平台发展趋势  15.3 移动广告平台的盈利模式  15.4 选择广告平台  15.4.1 国内移动广告平台简介  15.4.2 平台选择参考标准  15.5 嵌入广告插件  第16章 代码优化技术  16.1 编译前的代码优化技术  16.1.1 尽可能避免创建不必要的对象  16.1.2 方法调用代码优化  16.1.3 代码变量优化  16.1.4 代码过程优化  16.2 内存泄漏代码优化及检测  16.2.1 内存泄漏检测工具——Memory Analyser Tool(MAT)  16.2.2 MAT使用示例  16.3 代码混淆技术  16.3.1 ProGuard简介  16.3.2 ProGuard使用  第17章 加解密  17.1 使用HASH算法(MD5/SHA1)保护应用程序的安全  17.2 使用对称加密算法(BASE 64)隐藏关键信息  17.3 非对称加密算法(RSA)的使用 [1] 
收起全文
精华内容
参与话题
  • 开发自己的第一个安卓app

    万次阅读 多人点赞 2017-03-30 11:16:42
    开发自己的第一个安卓app 在开发安卓app的时候,首先我们需要配置一下电脑的开发环境。到jdk官网下载最新版本的jdk安装包。 Window64位下载地址:...

    开发自己的第一个安卓app

    在开发安卓app的时候,首先我们需要配置一下电脑的开发环境。到jdk官网下载最新版本的jdk安装包。

    Window64位下载地址:http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-windows-x64.exe

    下载完成后,全部默认安装,一直点击下一步知道完成。在安装的过程中,会安装两个jdk和jre(java环境)。

    之后就是配置环境变量。

    配置环境变量参考下面的链接:

    http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

    配置成功后,java的开发环境已经弄好了。下一步就是下载android开发的开发工具了。在这里,我建议使用android studio,因为google已经放弃了对eclipse的支持,目前在开发者也正在从eclipse中向android studio转移。

    下载android studio首先登陆android studio的官网:http://www.android-studio.org/index.php/download

    下载完成后,点击安装,全部默认,傻瓜式点击下一步直到完成。在其间会显示下载android sdk的提示框,并有下载的进度条,其实这里并不是从网络下载,因为我们下载的安装包中已经包含了sdk,所以这里的下载和进度其实是表示解压的进度。

     全部安装完成后,启动android studio的界面是这样的。

    这时候可以点击图片中的箭头选项,来创建一个安卓项目。

    点击下一步

    点击完成

    项目创建完成

    想对整个界面的各个部分深入了解的同学可以参考这篇文章

    链接:http://ms.csdn.net/geek/87819(可能手机才能正常显示)

    下面我们来点击运行

    会给出这样的提示

    说明我们还没有启动安卓虚拟机。现在比较流行的安卓虚拟机有genymotion

    官网为:http://www.genymotion.net/

    但我本人比较喜欢用夜神模拟器,链接为:http://www.yeshen.com/

    点击下载安装即可。全部是下一步直到完成。

    然后我们启动夜神模拟器

    可能一开始会以平板的形式显示,可以在设置中设置为手机

    然后点击保存,并重新启动。

    启动成功之后,在回到android studio,重新运行app

    选择设备。

    点击ok,android studio就开始构建和编译了。成功后会将app安装到安卓虚拟机上。

    安装成功后,手机屏幕已经显示了我们的第一个安卓app

    在桌面上已经多了一个Firstapp的应用了。

    这就是和大家分享的第一篇文章,实现自己的第一个安卓app

    展开全文
  • 看我是如何快速学习android开发的(一)

    万次阅读 多人点赞 2018-07-30 16:25:50
    因为项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定
    原文地址为:看我是如何快速学习android开发的(一)

            因为项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定个目标,我要做什么?我怎么达到目标? 

    我不懂java,但是懂C#和C++,所以我没主张去单独学习java语言,如果你是个最最初的新手,没啥语言基础,那你必须先看看java语言,不要很详细看,因为学习Android中,你也是在学习java。 

            1. 明确目标

    没有目标的学习,会感觉到后面没什么成果,在1年前,我也打算学习android开发的,但是目的就是学习,到网上去下载很多学习的视频,然后把开发环境搭建起来,能把Helloworld运行起来,能打些log,Activity之间也能互相切换了,但是后面也就不了了之了,因为不知道学了要干什么。依葫芦画瓢的做了几个例子,因为里面的问题都是已经解决的,所以也没能深入的系统学习。

     这次因为产品的需要,要做Android版本,要做的东西一开始就已经设计好了,见摇摇2选1安卓版本,刚开始也不知道里面有些什么技术难度,但是要做的目标已经明确了,而且也没有现成的,碰到问题就查资料,慢慢地解决,这样有的放矢,学习的效果非常好。既有现成的技术可以使用,又有些技术,需要查比较多的资料,这样记忆就比较深刻,所掌握的知识也比较系统。

    接下来的一系列文章,我会把在开发摇摇2选1中遇到的问题,给大家详细讲讲,程序虽然小,但是五脏俱全,做Demo和做产品的要求完全不是一个级别,如果Android大牛感觉知识讲的比较浅,那可以绕道,毕竟我是从一个完全的新手开始的。

     

            2. 了解安卓开发中比较困难的地方

    学习一个新平台,就要知道此平台开发要面临的困难有哪些,不要做到最后,这些问题没有考虑,那就比较糟糕了。在网上搜索了下,安卓开发困难总结如何

    1)安卓系统版本比较多,各版本之间的兼容性是个问题,此为系统碎片。

    2)安卓设备千变万化,设备难以统一,每个产品都成为独立,分散的Android碎片。

    3)分辨率五花八门。一个产品,可能需要多个界面排版,人工消耗比较大。

     

    看到这张图,有没有头疼的感觉? 

    总结成一句话:Android的碎片化真是要来开发者的命。 

     

            3. 搭建开发环境

    "巧妇难为无米之炊",开发环境肯定是第一件要做的事情,这类的文章已经很多了,我也不多说了,多说也就比较无聊了。感谢吴秦,也是博客园里的一员,他写的很详细了,见这里

     

            4. 查看网友总结的一些经验。

                 不是什么都查看,开发中遇到什么问题,就去查看什么问题,这样你查到的知识,马上就能深入的实践,这样知识就巩固了。

         1)首先当然要看Android的开发文档,里面其实大部分的知识都有了,还有就是SDK自带的Samples。

         2)博客园里搜索“Android开发”,会出来一大把,很多网友都是很系统的讲解了。

         3)eoe android社区,里面有很多网友上传了现成的demo代码,里面很多都是模仿现在流行的产品的界面开发,很是不错。

     

            5. 掌握调试方法

    个人一直认为,调试技巧是开发中最重要的技能,如果调试技能比较差,不知道如何查找问题,那不会是个好的程序员,其技能也不会高到哪里去。 

      Android做下来,感觉调试这块做的很不错了,这要感谢Eclipse IDE做的比较不错,但是Android的界面排版部分,真的不敢恭维,Eclipse时间用长了,占用内存真是大。有哪位高手能否告诉我下,你们界面排版是用什么的?

    Android里,如果程序出了问题,有些是一下跟踪不到的,这时就要用到Log类了,Log类使用很简单,就不多说了。
      自己一个很有感触的经验,如果你真的打算做Android开发,那就买一个设备,这样能大大提高开发效率,模拟器有时用起来真是麻烦,而且开发的设备不要很好的,只要设备分辨率是主流的,传感器的支持最好全点就够了,国产的手机里,华为的还不错,或者到淘宝上去买个二手的,投资不大。真的买了投资,可能也会增加你学习Android的决心。

           

    6. 程序框架

    经过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的作用。一个好的产品,如果有个好的程序框架,那真是事半功倍,可能开始所做的工作会比较多,很难看到令人激动的成果,但是相信我,绝对值得。一开始,我也是比较注重程序界面开发,很快就开发出界面来,而且着实比较激动,因为有东西出来了,但是后面的事情,真是令人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不允许,只有硬着头皮往上打补丁,硬着交付第一个版本,第二个版本或者后面的版本,迟早是要重来的。所以在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。

    刚接触Android,不知道用什么程序框架,所以查了很多资料,一开始看到一个程序框架,感觉很不错,所以一开始就使用了下面这个程序框架。

    开始这个框架用的蛮爽,简单介绍一下,主UI线程如果要做一个比较长时间的任务,创建一个任务,发送到任务队列中去,后台的Service不断的从任务队列中去取任务,然后交给线程处理,线程处理完后,通过消息(Message)发送到Handler里处理,然后Handler的handleMessage函数里回调到UI主线程中去。

    此框架的缺点是比较麻烦。

    1)首先这里有个Observer模式,每个Activity都要实现一个接口,然后注册到后台服务中去,这样后台服务才能把处理的结果回调到主线程中。

    2) 每个事件都要组成一个任务,发送到任务队列。

    3)后台线程先要取任务,然后处理,然后通过消息切换到主线程,然后又回到到相应的Activity中,中间有个3次判断当前是什么任务。

    4)不能并非,任务只能一个接一个,虽然这个一般不会造成瓶颈。

    因为摇摇2选1应用比较简单,所以后来感觉只要使用线程和Handler,通过消息就能处理,然后就查资料,发现已经有比较多的文章描述了这种方法,只是没提出这是一个框架,但是对摇摇2选1,我感觉已经足够了。下面就是主代码,分布在每个Activity中:

    private void TaskThread() 

    {

    Thread taskThread = new Thread()

    {

    @Override public void run()

    {

    //做耗时的任务 

     Message msg = Message.obtain();

    msg.what = 1;

    uiCallback.sendMessage(msg);

    }

    };

    taskThread .start();

    }

    private Handler uiCallback = new Handler()

    {

    @Override public void handleMessage(Message msg)

    {

    if(msg.what == 1)

    {

    //在主线程中处理结果 

    }

    }

    };

      够用就好,至少我现在用着很爽。

     

    7. 程序国际化

    互联网让地球成为一个村,所以一开始也需要了解一下程序是如何做国际化版本的。不要一开始字符串满天飞,整个程序中都存在hard code,这样做,迟早是要吃亏的。

     

    8.产品升级机制

    一个方便的产品升级机制,对产品的成长很重要,android是一个开放平台,在这点上比iOS做的好的多,产品升级很方便。 

     

    此文章的目的就是对想学Android开发的人一个指引,因为我也就是这么走过来的,加上自己在软件开发上的一些经验,让新手少走弯路。有计划,有目标的学习,这是最好的方法。


    转载请注明本文地址:看我是如何快速学习android开发的(一)
    展开全文
  • 14天学会安卓开发_(完整版) 从零开始学android开发

    千次下载 热门讨论 2020-07-30 23:32:33
    如何把一本书读薄,是一件值得思考的问题.相信看过那本书的都知道有500页,哪里才是重点...本书针对有JAVA基础的孩纸们,基本JAVA基础都没的,赶紧去找21天学会JAVA回去从头开始学,或者找一本从零开始学android开发看也行.
  • Android开发入门60个小案例+源代码

    千次下载 热门讨论 2020-07-30 23:30:36
    适合初学者,大量简单小例子,完整源代码。
  • 2018年的安卓开发环境搭建

    万次阅读 2018-12-01 18:05:36
    记得超早以前我就弄过一次Eclipse上的ADT安卓开发环境搭建,不过过了这么多年,安卓系统已经更新换代这么多次,开发工具也早就换成了Android Studio。正好这几天看了一下当年买了没怎么看的安卓开发书籍,顺便更新一...

    记得超早以前我就弄过一次Eclipse上的ADT安卓开发环境搭建,不过过了这么多年,安卓系统已经更新换代这么多次,开发工具也早就换成了Android Studio。正好这几天看了一下当年买了没怎么看的安卓开发书籍,顺便更新一波。最后提醒一下,如果无法科学上网的话,很难完全照着本文的步骤来,因为很可能会卡在某个地方的。

    安装Android Studio

    安卓官网在国内无法访问,不过谷歌为了中国开发者,专门弄了一个中国开发者网站,国内可以轻松打开,页面也和国际官网一模一样。

    然后点击网站上的Android Studio标签,或者直接访问这里,就可以下载Android Studio了。下载完成之后点击安装,稍等片刻就安装完毕了。

    安装Android Studio

    比较有意思的是,我这里从dl.google.com上下载AS和安卓SDK的时候,居然可以无需科学上网直接下载。不知道大家的情况是怎样的。

    设置环境变量

    其实这一步不算必须的,如果你感觉你C盘够大的话。就我个人体验,我的240G固态已经不能满足需求了,前几天满了我还不得不重装了一次系统(下次买硬盘一定要买1T的固态)。

    首先设置ANDROID_SDK_ROOT环境变量,值设置为安卓SDK文件夹存放位置。

    然后设置ANDROID_AVD_HOME环境变量,值设置为安卓模拟器的存放位置。

    设置环境变量

    首次启动Android Studio

    准备就绪之后就可以启动AS了,不过不出意外的话你肯定会看到这个错误信息。

    无法获取信息

    有代理的同学直接设置一下代理就完事了,如果没有代理,可以在AS安装目录中寻找bin/idea.properties文件,然后在最后添加下面一行,应该就可以直接打开了。如果前面可以直接下载AS的话,那么应该也可以直接下载SDK,可以试试直接点取消会怎样,如果能直接进入首次启动页面,就不用修改文件了。

    disable.android.first.run=true
    

    如果顺利的话,就会显示这么一个初次运行对话框,引导我们设置AS,第一步会询问是标准(Standard)还是自定义(Custom),当然选择自定义了。
    设置AS

    首先是主题设置,我当然是选择深色主题了。
    主题设置

    然后是下载/更新SDK,按照需求选择即可,由于我是AMD处理器,无法使用英特尔加速,所以没选那个。记得修改一下SDK安装位置,这里好像不认前面设置的环境变量。

    安装SDK

    这里提示一下,如果你重装过系统,而且原来的安卓SDK还在的话,可能会在这里出现安装错误。我出现的错误是找不到下载目录,仔细检查后发现,AS会尝试下载到以前的用户临时文件夹中,但是我用户名改过了,所以就出错了。我的解决办法是把原来的SDK全删了重新下载一次。

    最后如果一切顺利的话,应该就会成功显示AS主界面了。

    Android Studio界面

    配置Android Studio

    安装算是终于完成了,还要配置一下Android Studio才能比较舒服的使用。点击Configure->Settings,就可以打开配置对话框。

    设置代理

    这一步基本上很难绕过去,因为现在的安卓程序使用gradle构建,而且默认使用的方式是gradle wrapper,wrapper方式的优点是无需本机事先安装gradle,因为实际上wrapper程序会代你自动下载gradle,而没有代理的话gradle wrapper这一步基本上就会完全卡死。很多人不喜欢gradle的原因就在于此。

    设置代理

    设置字体

    默认字体小的可怜,而且是通用等宽字体monospaced,作为天天要看的代码字体,肯定必须要做修改。Windows自带的Consolas字体是一个非常不错的选择。如果电脑上同时安装了Visual Studio,应该也会同时安装Lucida Sans Typewriter字体,也很美观。此外,Liberation Mono和Monaco也是不错的字体,我个人比较喜欢Liberation Mono,越看越耐看。

    图片.png

    插件安装

    我感觉必装的插件有.ignore(自动生成排除文件,谁用谁知道)还有Key Promote X(自动提示你鼠标点击的按钮的键盘快捷键,帮助你快速了解IDE的常用快捷键)。

    Jetbrains系软件的插件还有很多很有意思的,比方说让你自定义代码背景图片的Background Image Plus,还有让你写代码时候增加特效的Power Mode II (模仿自Atom的Activate Power Mode)等等,有兴趣的同学可以安装一下它们。

    安装插件

    新建项目

    全部配置完毕之后,让我们来创建一个新项目看看AS的效果如何。首先点击开始创建新项目。
    创建新项目

    然后输入项目信息,现在Kotlin正火,谷歌也将其收入为安卓官方支持语言,那么我们自然也顺便添加Kotlin支持。

    输入项目信息

    然后选择项目的安卓SDK版本,默认推荐的只安装了安卓P的SDK,如果你选择了其他的版本,还需要额外下载SDK。其实这里也可以看到安卓的碎片化实在是太严重了。目前里谷歌发布安卓P已经有了半年左右时间了,设备更新率只有可怜的不到1%,国内动作比较快的华为和小米也才刚刚开始推送安卓P更新。

    选择SDK版本

    然后是选择界面样式,由于是示例项目,随便选一个就可以了,我选择了空活动。
    选择界面样式

    最后是设置主活动类的名称,默认即可。
    设置主活动名称

    最后就是漫长的等待时间了。如果你没有代理,这个时间可能永远无法结束。就算我有代理,第一次构建也花了很长时间。因为Jetbrains系的软件为了增加提示和代码补全的智能程度,需要对很多东西做索引,所以第一次构建实际上会做以下工作(包括但可能不限于):

    • gradle wrapper下载gradle
    • gradle下载项目所需依赖包
    • gradle启动后台进程并开始执行构建
    • AS对安卓SDK、JDK、项目依赖包的索引

    这一套组合拳下来可能网速慢的十几分钟就没了,这也是gradle常常被人黑的原因。不过忍受过这难熬的第一次之后,gradle的优势就体现出来了。

    项目代码

    最后就来运行一下我们的安卓项目。如果你是英特尔CPU,而且前面安装了自带的预配置好的优化版x86安卓模拟器,现在可以直接点击Tool -> AVD Manager,打开虚拟机管理器,然后直接点击绿色运行按钮来启动。

    运行预配置安卓模拟器

    很遗憾我用的AMD锐龙处理器,所以无法运行x86安卓模拟器,准确的说是无法在关闭HyperV的情况下运行,因为我同时还要运行其他虚拟机软件。所以只能使用另一种办法,那就是直接在手机上运行。用USB连接将手机和电脑连接在一起,在手机上打开USB调试,按照设置不同可能还需要顺便打开USB安装和允许USB模拟点击等几个选项。当然需要注意的是这些选项会直接在手机上安装应用。所以最好只在自己电脑上开启USB调试,在公共场合不要开启。

    手机准备就绪之后点击Run -> Run app,就会打开设备列表对话框,同时在手机上提示是否允许USB连接。确定之后,AS就会正确识别手机设备了。由于我手机小米8的安卓P稳定版尚未推送,所以还正好无法运行安卓P的应用,我还特地在gradle配置文件中将minSdkVersion修改为27,才能正好运行。

    设备列表

    稍等一下手机上就会安装上这个程序,然后打开即可。
    手机效果

    这样一来,一个崭新的安卓开发环境就搭建完毕了。之后就可以好好开始学习如何开发安卓程序了。

    展开全文
  • 安卓开发——登录界面

    万次阅读 多人点赞 2018-09-19 09:00:50
    安卓系统体系架构思维导图

    项目功能需求:
    1> 点击登录按钮,登录成功与否必须有对应的响应事件。
    2> 点击取消按钮,可以退出程序。
    3> 用户名文本框和密码框可以接收由键盘输入的数据,且分别有提示信息。(密码框显示输入的内容不显示)
    4> 要有背景图片

    效果图

    在这里插入图片描述
    一、安卓结构布局分析,外层布局一共有四层为垂直布局,第二三四层内嵌布局为水平布局。
    二、线性布局概述
    线性布局(LinearLayout)是一种比较常用且简单的布局方式。在这种布局中,所有的子元素都是按照垂直或水平的顺序排列在界面上。如果是垂直排列,每个子元素占一行,如果是水平排列,则每个子元素占一列。线性布局可以支持布局样式嵌套实现复杂的布局样式。

    layout文件夹下面的activity_main.xml为布局文件
    LinearLayout标签的常用属性有:
    (1)layout_width:布局宽度(match_parent(适应屏幕宽度)、wrap_content(包裹宽度))
    (2)layout_height:布局高度(match_parent(适应屏幕高度)、wrap_content(包裹高度))
    (3)orietation:方向(vertical(垂直),horizontal(水平))
    (4)gravity:对齐方式(left, right, center……)
    (5)background:背景(颜色、图片)
    三、导入背景图片

    TextView为文本标签,其常用属性有:
    (1)text(文本)【建议文本内容在values下的string.xml中自行定义,例:android:text="@string/login" ;其中login是string.xml文件中的name属性】

    (2)textSize(字体大小)【字体大小单位一般用sp,例:android:textSize=“25sp”】
    (3)textColor(字体颜色)【例:android:textColor="#ff00ff"】
    EditText为可编辑文本框,其常用属性有:
    (1)hint(提示信息)【例:android:hint="@string/et_username"】
    (2)singleLine(单行显示)【属性:(true、false)例:android:singleLine=“true”】
    (3)inputType(输入类型)【属性:(textPassword、datetime、text)例:android:inputType=“textPassword”】
    Button为按钮标签
    提示:为了方便添加事件,每个标签可以增加 ID 属性,格式为:android:id="@+id/bt_log"
    三、按照布局分析将各个标签进行排版布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/b2"
        android:gravity="center"
        android:orientation="vertical"
        tools:context="com.example.admin.register.MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/login"
            android:textSize="25sp"
            android:textColor="#ff00ff"
             />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_horizontal">
    
            <TextView
                android:id="@+id/tv_username"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tv_username"
                android:textSize="20sp"
                android:textColor="#000000"/>
    
            <EditText
                android:id="@+id/et_username"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:hint="@string/et_username"
                android:singleLine="true"
                />
    
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_horizontal">
    
            <TextView
                android:id="@+id/tv_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tv_password"
                android:textSize="20sp"
                android:textColor="#000000"/>
    
            <EditText
                android:id="@+id/et_password"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:hint="@string/et_password"
                android:inputType="textPassword"
                />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_horizontal">
    
            <Button
                android:id="@+id/bt_log"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/bt_log"/>
    
            <Button
                android:id="@+id/bt_bos"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/bt_bos"/>
    
        </LinearLayout>
    
    </LinearLayout>
    
    

    四、打开values文件下面的string.xml文件,在文件中定义layout文件夹下面的activity_main.xml中所需文本。

    <resources>
        <string name="app_name">Register</string>
        <string name="login">用户登录</string>
        <string name="tv_username">用户:</string>
        <string name="tv_password">密码:</string>
        <string name="bt_log">登录</string>
        <string name="bt_bos">取消</string>
        <string name="et_username">输入用户名</string>
        <string name="et_password">输入密码</string>
    </resources>
    
    

    五、打开JAVA文件夹下MainActivity文件添加事件响应。

    为用户名文本框、密码框、登录按钮、取消按钮定义变量。

    通过资源标识获得控件实例,因为类型不同所以要进行强制转换。

    给登录按钮注册监听器,实现监听器接口,编写事件(注:使用匿名内部类)

    Toast是Android系统提供的一种提醒方式,不会占用任何的屏幕空间,所以可以将一些简短的信息通过toast的方式通知给用户,这些信息过一段时间会自动消失
    第一个参数:MainActivity.this,当前的上下文环境
    第二个参数:要显示的字符串,就是你想在屏幕上显示的内容
    第三个参数:显示的时间长短,就是这个字符串在屏幕上显示的时长。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短)。
    show(); 显示

    给取消按钮注册监听器,实现监听器接口,编写事件

    finish(); 终止

    package com.example.admin.register;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
        private EditText et_username;
        private EditText et_password;
        private Button bt_log;
        private Button bt_bos;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //利用布局资源文件设置用户界面
            setContentView(R.layout.activity_main);
    
            //通过资源标识获得控件实例
            et_username = (EditText) findViewById(R.id.et_username);
            et_password = (EditText) findViewById(R.id.et_password);
            bt_log = (Button) findViewById(R.id.bt_log);
            bt_bos = (Button) findViewById(R.id.bt_bos);
    
            //给登录按钮注册监听器,实现监听器接口,编写事件
            bt_log.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //获取用户输入的数据
                    String strUsername = et_username.getText().toString();
                    String strPassword = et_password.getText().toString();
    
                    //判断用户名和密码是否正确(为可以进行测试,将用户名和密码都定义为admin)
                    if(strUsername.equals("admin") && strPassword.equals("admin")){
                        Toast.makeText(MainActivity.this,"用户名和密码正确!",Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(MainActivity.this,"用户名或密码错误!",Toast.LENGTH_SHORT).show();
                    }
    
                }
            });
            //给取消按钮注册监听器,实现监听器接口,编写事件
            bt_bos.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }
    }
    
    

    以上就是安卓开发登录界面的的过程

    展开全文
  • 安卓app开发-01-开发工具及环境配置

    万次阅读 2018-09-18 19:23:10
    安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.android-studio.org/ 配置方法我就不转载了,请参考:...
  • Android开发和java开发的相同点: android开发是java开发的一个分支。android种的类库有一部分和java类库基本一致,也就是类名一致。比如String,Integer这些,但是具体的实现都是改过的(还好改过的,不然和甲骨文...
  • 安卓 Android开发简单小应用(一)

    万次阅读 多人点赞 2018-10-30 11:29:32
    安卓 Android开发简单小应用(一) 一、简述  记 --没学过Android开发简单小应用。(课程设计作业)  例子打包:链接:https://pan.baidu.com/s/1LEQ1oWkUX8OmtfCFVydxWQ 密码:9o0d 二、环境搭建 软件打包:...
  • Android studio开发-第一个入门例子(十分详细)

    万次阅读 多人点赞 2018-11-16 23:10:31
    举个栗子 实现功能:可以通过页面输入改变要显示的字符,然后通过按钮可以实现显示字符的放大功能。最终如下: 一共四个控件:一个text输入,一个text显示,一个输入修改确认按钮,一个放大按钮 ...
  • Android学习教程三分钟学会安卓开发

    千次阅读 2018-05-18 09:27:10
    1.创建页面(activity_main是默认主页面)可拖拽控件,点击下方text切换到代码下图红框中的是控件的默认id2.创建activity class(与layout一一对应)在清单文件中注册或以a页面为主界面继承自oncreat方法中(跳转...
  • https://segmentfault.com/a/1190000003966493
  • Android开发都需要使用什么语言?

    万次阅读 2014-11-24 10:16:01
    Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面。...
  • 爆炸性新闻
  • 2、选择Android,发现下面有一段红字,解释很清楚,由于第一使用为设置Android开发环境sdk,去设置一下就好,点击取消回到上一界面 3 配置 4、当然在这之前想要做Android项目要有jdk和sdk这我就不在说了,...
  • 安卓开发Java篇

    千次阅读 2018-05-14 16:25:27
  • (一)使用VS进行Android开发

    千次阅读 2019-05-03 15:54:38
    VS开发android 1.安装Xamarin.Android 参考: https://docs.microsoft.com/zh-cn/xamarin/cross-platform/get-started/installation/windows 2.安装Android SDK 参考:...
  • 安卓开发工程师职业发展规划

    千次阅读 2017-12-28 09:21:25
    Android安卓移动开发工程师职业规划图,包括安卓开发的发展晋升路线(技术专精和技术转产品两条晋升路线)
  • 手把手做安卓应用开发

    万人学习 2016-06-30 16:53:17
    安豆是一个想学Android应用开发的小白,于是它找到自己的邻居-程序员大牛-熊哥帮忙。熊哥手把手带着安豆搭建程序的开发环境,实现应用的功能,美化应用界面,让安豆终于开发出了自己的第一个安卓应用-计算器。 ...
  • 使用 Android Studio 搭建安卓开发环境

    千次阅读 2019-09-16 09:58:00
    使用 Android Studio 搭建安卓开发环境,方便、快捷。因为 Android SDK 等下载已经集成到Android Studio 的安装中 1、官网下载Android Studio 编辑器 首先,访问谷歌中国开发者网站下载Android Studio 编辑器:...
1 2 3 4 5 ... 20
收藏数 837,296
精华内容 334,918
关键字:

安卓开发