
android开发教程
文章平均质量分 83
系统的翻译android官方开发文档。
Android开发快速入门。
牛搞
深研C++;
深研架构,设计模式;
深研高性能并发服务器;
展开
-
Kotlin快速入门(一)
Kotlin简介Java和Kotlin都是Android的官方开发语言,但是,Kotlin已上升为第一开发语言,Java屈居第二。Kotlin的官网地址是:https://kotlinlang.org 。Kotlin是与Java在底层完全兼容,而且,它是强类型语言(谢天谢地,它不是脚本语言!真不明白为什么Python和Javascript这些弱类型语言为什么能大行其道,它们跟本就不是完整的语言嘛!),它的编译产物就是Java的class文件,当然也要基于虚拟机运行,所以Kotlin与Java可以说是一原创 2021-01-07 11:26:01 · 1544 阅读 · 1 评论 -
Android9编程十二:代码操作控件
上一篇:Android9编程十一:各种Layout控件所有的控件都是从类View派生,所以控件也被叫做View。各种Layout控件当然也是View了,但由于其作用特殊,所以我们单独称它们为Layout(同时我们把一个UI资源文件件有时也称做layout资源,因为它在res/layout组下)。Activity中创建界面Activity虽然代表一个页面,但是它却不是View,然而它却能管理V...原创 2019-06-16 16:39:53 · 1011 阅读 · 0 评论 -
Android9编程十一:各种Layout控件
Android9编程十:ScrollView除了我们讲的ConstraintLayout和RelativeLayout,还有很多其它的Layout控件,实际上这两个是最复杂的,所以现在再学其它的Layout就感觉到很easy了。FrameLayoutFrameLayout是最简单的一种Layout,既然是个Layout,它当然可以容纳多个View。但是它并没有一定的规则去排列多个View,而...原创 2019-06-09 09:24:46 · 1363 阅读 · 0 评论 -
Android9编程十:ScrollView
Android Layout,内容超出显示范围,使用ScrollView提供内容滚动能力。原创 2019-06-09 08:52:47 · 713 阅读 · 0 评论 -
Android9编程九:使用RelativeLayout设计登录页面
上一篇:Android9编程八:RelativeLayout排版思路下面我们玩点复杂的:设计一个登录页面。这个登录页面大体上是这样:最上面是一个头像,中间是用户名输入框,其下是密码输入框,最下面的登录按钮。先想一下怎么设计。为了美观一些,我们希望这些内容整体居中显示,这里指的是纵向上的居中。因为屏幕一般都是竖着看的。文本输入控件和按钮控件都可以把高度设置为“wrap_content”,这样它...原创 2019-05-26 10:22:35 · 794 阅读 · 0 评论 -
Android9编程八:RelativeLayout排版
上一篇:Android9编程七:ConstraintLayout 排版其实在ConstraintLayout出来之前,Android推荐的排版控件是RelativeLayout。它的能力与ConstraintLayout差不多,也是专用于设计复杂的排版。它与ConstraintLayout的区别是,它对于鼠标拖放的方式来布局控件支持得不好,比如我用它时更喜换直接在属性栏中设置与位置相关的各种属性...原创 2019-05-18 08:17:42 · 668 阅读 · 0 评论 -
Android9编程七:ConstraintLayout 排版
上一篇:Android9编程六:图像资源一 ConstraintLayoutConstraintLayout还是非常新的东西。但是的确好用,是Android极力推荐的一个排版控件。所有叫“Layout”的控件都是用于排版的,就是它能决定它所包含的子控件的位置。这些Layout控件有个特点:可以包含多个子控件。不同的Layout控件,它们排列子控件的方式不一样。ConstraintLayout...原创 2019-05-11 08:05:50 · 976 阅读 · 0 评论 -
Android9编程六:图像资源
上一篇:Android9编程五:Layout资源一、添加图像资源如果我们想在图像中显示自己喜欢的图像,肿么办呢? 这也不难,我们可以把电脑上的图像复制到工程的资源中,这样就可以在工程中使用它们了。做法是这样的:在你的文件浏览器中找一个图像文件(如果没有就从网上下载一个),最好是png格式的,jpg的也行,然后在文件浏览器中复制此文件(不要说你不知道怎么复制,按Ctrl+C或右键菜单中选“复制...原创 2019-05-04 08:03:52 · 942 阅读 · 0 评论 -
Android9编程五:Layout资源
上一篇:Android9编程四:虚拟机加速什么是LayoutLayout的意思是界面布局,靠它来设计界面的布局,所以layout类型的资源文件就是界面定义文件。使用Android Studio提供的界面构建器设计Layout,可以做到所见即所得。Android中的UI定义文件是一个XML文件,由于它不是Java代码,所以它被归为资源。Layout资源放在哪里呢? 看下图:可以看到res/...原创 2019-04-27 07:14:22 · 1475 阅读 · 0 评论 -
Android9编程四:虚拟机加速
上一篇:Android9编程三:运行第一个AppAndroidStudio之所以推荐创建x86架构的虚拟机,主要是因为它快,但是,这是有条件的,条件有三:1 你的电脑必须是Intel的CPU。2 你的电脑必须在BIOS中开启了CPU虚拟支持。3 你的电脑必须安装了虚拟加速工具:HAXM。所以,如果你的电脑是AMD的CPU,那就认倒霉吧。虽然AMD也是X86架构,但是Android虚拟...原创 2019-04-20 10:57:11 · 1458 阅读 · 0 评论 -
Android9编程三:运行第一个App
接上回:Android9编程二:创建第一个App当前这个工程已经具备了一个页面,而且是可以运行的,运行一个APP很简单,点菜单栏下面工具栏上的绿色三角箭头即可:点了之后,出现如下窗口:这个窗口让我们选择一个Android设备来运行APP。APP必须运行在Android设备上,如果你指定了一个设备,Android Studio就会把我APP安装到这台设备上并自动开启这个APP。但是现在这...原创 2019-04-13 11:30:10 · 2051 阅读 · 0 评论 -
Android9编程二:创建第一个App
一、四原则创建App工程时坚持遵守以下四原则,可以让你少进很多坑。当然还有更多要遵守的,但是多了记不住,先记这四条吧:工程名不能有中文或标点符号。比如:“我的工程”。工程名中不能有空格。比如“hello world”。工程不要放在有中文的路径下,这个就不好:“c:\work\安卓\helloworld”。变量,函数,类等不要取中文名或带有标点符号。比如:“String 名字 = ”马云...原创 2019-04-08 15:08:07 · 1361 阅读 · 0 评论 -
Android9编程一:安装开发环境
本教程从-1开始:什么? 你们的教程都从0开始? 起点太高了!明摆着不想让人看懂!我们从-1开始。一、配置Android开发环境Android开发有两种IDE(集成开发环境)可以使用,一是Android Studio,二是ADT+eclipse。不过ADT+eclipse这种方式Google早已经宣布不再更新了,所以现在只有一种选择:Android Studio !使用Android St...原创 2019-04-02 20:08:17 · 3184 阅读 · 0 评论 -
对Android的恶意吐槽(勿看,有毒)
优快云博客:http://blog.youkuaiyun.com/niu_gao我认为android系统中有一个特恶心人的大败笔。就是这个大败笔造成了android系统的卡卡卡不停。这个大败笔就是对activity的设计。Android对activity的设计原则是:必须是运行时独立的。你不能直接创建activity并启动它,必须由系统帮你这样干。你要启动activity,必须用一个Intent请求系统帮忙。原创 2016-04-14 17:32:44 · 11940 阅读 · 9 评论 -
android动画详解六 XML中定义动画
动画View属性动画系统允许动画View对象并提供很多比view动画系统更高级的功能。view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,因为View本身没有要操控的属性。结果就是View被动画了,但View对象本身并没有变化。在Android3.0中,新的属性和相应的getter和setter方法被加入以克服此缺点。属性动画系统可以通过改变View对象的真翻译 2016-03-30 20:24:15 · 3281 阅读 · 0 评论 -
android动画详解五 layout,插值与评估器
· 动画监听器 你可以使用下述监听器监听动画过程中的重要事件们: · Animator.AnimatorListener · onAnimationStart() - 动画开始时调用。 · onAnimationEnd() - 当动画结束时调用。 · onAnimationRepeat() - 当动画开始重复时调用。 · onAnimationCancel() - 当动画被取消时调用。一个取消的动翻译 2016-03-27 17:59:47 · 2786 阅读 · 2 评论 -
android动画详解四 创建动画
· 使用ValueAnimator进行动画通过指定一些int, float或color等类型的值的集合,ValueAnimator 使你可以对这些类型的值进行动画。你需通过调用ValueAnimator 的某个工厂方法来获得一个ValueAnimator 对象,比如:ofInt(), ofFloat(), 或 ofObject()。例如:ValueAnimator animation = Valu翻译 2016-03-23 19:32:49 · 3156 阅读 · 1 评论 -
android动画详解三 动画API概述
· 属性动画与view动画的不同之处 view动画系统提供了仅动画View 对象的能力,所以如果你想动画非View 对象,你就要自己实现代码。 view动画系统实际上还被强制仅能对 View 的少数属性进行动画,比如缩放和旋转,而不能对背景色进行。view动画的另一个坏处是它仅修改View的绘制位置,而不是View的实际位置。例如,如果你动画一个移动穿越屏幕,button的绘制位置是正确的,但实际翻译 2016-03-21 19:31:36 · 3397 阅读 · 1 评论 -
android动画详解二 属性动画原理
property动画是一个强大的框架,它几乎能使你动画任何东西。你可以定义一个动画来改变对象的任何属性,不论其是否被绘制于屏幕之上。一个属性动画在一定时间内多次改变一个属性(对象的一个字段)的值。要动画某个东西,你需指定对象的目标属性,比如位置,动画的持续时间,和改变的值的范围。 属性动画系统允许你指定以下动画属性:· Duration: 动画持续时间。默认是300 ms. · Time inte翻译 2016-03-18 19:26:11 · 4083 阅读 · 1 评论 -
android动画详解一 概述
动画和图形概述Android 提供了大量的强大的API以应用于UI动画和绘制2D和3D图形。下面各节向你描述了这些API的预览和系统能力以帮助你决定怎么才是达到你需求的最佳方法。动画Android 框架提供了两个动画系统: 两种动画系统都是切实可用的,但是一般情况下属性动画系统是被首推使用的。因为它更灵活并且提供了更多的特性。在此两系统之外,你还可以使用Drawable动画,它使得你可以加载dra翻译 2016-03-17 20:08:04 · 2750 阅读 · 0 评论 -
详解如何将android工具链作为独立编译器使用
现在已经可以把Android NDK提供的工具链以独立编译器的方式使用了!如果你已经有了自己的构建系统,这就很有用了。一个典型的应用场景是调用一个依赖于CC环境变量开源库的'configure'脚本进行跨平台编译。 本文档将解释如何那样做。1 选择你的工具链:首先 ,你需要确定你的独立工具链所面向的目标CPU加构,是ARM-based设备、x86-based设备,还是MIPS-based设备。每个翻译 2013-04-14 06:57:37 · 8068 阅读 · 0 评论 -
一步一步学android OpenGL ES2.0编程(6 大结局)
响应触摸事件使你的OpenGL ES应用能响应触摸的关键是扩展你实现的GLSurfaceView 代码,覆写onTouchEvent() 方法来监听触摸事件。 本文向你展示如何监听用户的触摸事件以使用户可以旋转某个OpenGL ES对象。设置一个触摸监听器为了使你的OpenGL Es应用响应触摸事件,你必须在你的GLSurfaceView 类中实现onTouchEvent()事件。下面的例子演示了翻译 2013-03-14 16:04:42 · 18178 阅读 · 3 评论 -
一步一步学android OpenGL ES2.0编程(5)
添加运动在屏幕上绘制是OpenGL的基础能力,但是你也可以用其它的Android图形框架类来做,包括Canvas和Drawable。 但是OpenGL ES提供了另外的能力,可以在三维上移动和变换对象。总之它能创造很牛B的用户体验。在本文中,你将学会如何使用OpenGL ES为形状添加旋转功能。转动一个形状使用OpenGL ES 2.0旋转一个对象也是十分简单地。你创建另外一个变换矩阵(一个旋转矩翻译 2013-03-08 14:58:05 · 20095 阅读 · 1 评论 -
一步一步学android OpenGL ES2.0编程(4)
<!-- @page { margin: 2cm } PRE.western { font-family: "Courier New", monospace } PRE.cjk { font-family: "新宋体", monospace } PRE.ctl { font-family: "Courier New", monospace } H2 { margin-botto翻译 2013-03-01 06:21:47 · 22577 阅读 · 6 评论 -
一步一步学android OpenGL ES2.0编程(3)
<!-- @page { margin: 0.79in } PRE.western { font-family: "Courier New", monospace } PRE.cjk { font-family: "新宋体", monospace } PRE.ctl { font-family: "Courier New", monospace } H2 { margin-bo翻译 2013-02-20 10:02:43 · 35227 阅读 · 16 评论 -
一步一步学android OpenGL ES2.0编程(2)
(欢迎大家加入android技术交流QQ群:209796692)定义形状会定义在OpenGLES view上所绘制的形状,是你创建高端图形应用杰作的第一步。如果你不懂OpenGLES定义图形对象的一些基本知识,使用OpenGLES可能有一点棘手。本文解释OpenGLES相对于Android设备屏幕的坐标系统、定义一个形状的基础知识、形状的外观、以及如何定义三角形和正方形。定义一个三角形OpenGL翻译 2013-01-31 14:42:59 · 24418 阅读 · 7 评论 -
一步一步学android OpenGL ES2.0编程(1)
<!-- @page { margin: 0.79in } PRE.cjk { font-family: "WenQuanYi Micro Hei", monospace } H2 { margin-bottom: 0.08in } H2.cjk { font-family: "WenQuanYi Micro Hei" } H1 { margin-bottom: 0.08in翻译 2013-01-23 11:01:03 · 31089 阅读 · 11 评论 -
android Content Provider详解九
元素就像Activity和Service组件,ContentProvider的子类必须在应用的manifest文件中进行定义。使用元素。Android系统从元素中获取以下信息:Authority(android:authorities)在系统中标志整个provider的代号。此属性在设计ContentURI 一节中有更详细的描述。Provider类名(android:name)实现了Content翻译 2013-01-14 07:57:59 · 7082 阅读 · 1 评论 -
android Content Provider详解八-实现ContentProvider MIME 类型
(欢迎大家加入android技术交流QQ群:209796692)实现ContentProvider MIME 类型ContentProvider 有两个方法返回MIME类型。 getType() 一个对任何provider都要实现的方法。 getStreamTypes() 如果你的provider提供的是文件,此方法是期望被实现的。 表的MIME类型们getType()方法返回一个MIME格式的S原创 2012-12-27 07:07:48 · 6630 阅读 · 0 评论 -
android Content Provider详解七-实现ContentProvider类
(欢迎大家加入android技术交流QQ群:209796692)实现ContentProvider类ContentProvider 实例管理对一个结构型数据集的操作以处理从另外一个应用发来的请求。所有的操作最终都调用ContentResolver,然后它又调用ContentProvider 的一个具体的方法。 查询方法们虚类 ContentProvider 定义了六个虚方法,你必须在你的派生类中实翻译 2012-12-24 07:42:52 · 6701 阅读 · 0 评论 -
android Content Provider详解六
创建一个Content Providercontent provider管理对中央数据仓库的存取。你实现一个provider,就是在一个Android应用中实现一个或多个类,再加上manifest文件中的一些元素。你实现一个 ContentProvider的子类,它作为你的provider和其它应也之间的接口。尽管content providers的目的是向其它应用提供数据,但当然也可以在你自己的翻译 2012-10-19 07:23:31 · 6412 阅读 · 3 评论 -
android Content Provider详解五
<!-- @page { margin: 2cm } H4 { margin-top: 0.49cm; margin-bottom: 0.51cm; background: transparent; border: none; padding: 0cm; direction: ltr; font-variant: normal; color: #000000; background: tr翻译 2012-10-12 07:02:08 · 4183 阅读 · 1 评论 -
android Content Provider详解四
Provider数据类型Contentproviders能识别多种不同的数据类型.用户词典只识别文本类型,但其它provider可以识别下列格式:整型长整型(long)浮点长浮点(double)另一个provider经常使用的数据类型是"大二进对象"(BLOB) ,它就像一个64KB的字节数组.你可以通过Cursor类的"get"方法查看可用的数据类型.provider中的每列的数据类型都是在它们翻译 2012-09-17 06:41:40 · 4237 阅读 · 1 评论 -
android Content Provider详解三
Content Provider 的权限一个具有provider的应用可以指定其它要操作自己的数据所应具有的权限.这些权限保证了用户能了解一个应用将要操作那个数据.其它应用需基于provider的需求请求相应的权限.用户在安装应用时会看到它们所请求的权限.如果一个provider的应用没有指定任务权限,那么其它应用就不能操作provider的数据.然而,provider所在的应用的组件们却具有完整翻译 2012-08-16 07:23:42 · 8603 阅读 · 0 评论 -
android Content Provider详解二
从Provider取得data本节讲述了如何从provider取得数据,使用用户词典作为例子.为了清析易懂,本节中调用ContentResolver.query()的代码片断置于"UI 线程"中.但是,在实际代码中,你应该在另一个线程执行查询动作,这样做的一种方法是使用CursorLoader 类.而,那几行示例代码仅是片断,它们不能展示一个完整的应用.要从provider取得data,须依如下步翻译 2012-08-10 07:04:36 · 5960 阅读 · 0 评论 -
android Content Provider详解一
内容提供者-Content ProviderContent providers管理对结构化数据集的使用.它们封装数据,并提供了数据安全的机制.Content providers是从一个进程连接另一个进程中的数据的标准接口. 当你想使用一个content provider中的数据,你需在你的应用的Context 中使用ContentResolver对象作为客户端与provider 进行通讯.Cont翻译 2012-08-06 07:54:35 · 11525 阅读 · 3 评论 -
Android录音与播放
Android多媒体框架包含获取和编码多种音频格式的支持,所以你可以轻松地把音频合并到你的应用中.如果设备支持,你可以使用MediaRecorder APIs 进行录音.本章向你展示如何写一个应用从设备上的microphone获取音频,然后保存并回放.注:Android模拟器不具有录音的能力,但是真实的设备一般都具有此功能.执行音频获取从设备获取音频比回放音频或视频要复杂一点,但是也还算简单:创建翻译 2012-07-31 07:11:24 · 17992 阅读 · 5 评论 -
android 多媒体和相机详解十一(大结局)
Time lapse视频(定时录像?)time lapse视频使得用户可以创建某个时间段的图像组成的视频剪辑.此特性使用MediaRecorder 来录制图像到一个序列. 要使用MediaRecorder录制一个time lapse视频,你必须像录制一个一般视频那样配置recorder对象,设置帧率到一个低的数字并且设置time lapse质量 ,如下面代码所示:// Step 3: 设置一个Ca翻译 2012-07-26 07:06:23 · 10495 阅读 · 3 评论 -
android 多媒体和相机详解十
检测可用的特性// get Camera parametersCamera.Parameters params = mCamera.getParameters();List focusModes = params.getSupportedFocusModes();if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {翻译 2012-07-25 08:20:21 · 16296 阅读 · 4 评论 -
android 多媒体和相机详解九
释放相机 想机是被设备上的应用们共享的资源.你的应用可以在获取相机实例后使用它,并且你的应用必须在用完后释放它,而且在暂停时(Activity.onPause())也要釋放它.如果你的应用没有适当的释放相机,所有后续试图获取相机使用权的操作,包括你自己的应用,都会失败并且导致那些应用关闭.要释放一个相机对象实例,使用方法Camera.release(),如下代码所示:public class C原创 2012-07-21 12:12:52 · 9889 阅读 · 3 评论