Android初级教程
文章平均质量分 89
此专栏对安卓基础知识做出从头到尾的整理,梳理基础安卓体系。
杨道龙
南京邮电大学硕士,某大厂Android开发,软件开发狂热爱好者,热爱分享知识,CSDN博客认证专家。在CSDN原创文章300多篇。
展开
-
自定义View 篇二--------《自定义属性》
之前在自定义View理论中,遗留下了一个知识,就是具体的自定义属性到底怎么使用。本篇就对自定义属性的常见方式,做详细的整理。分析自定义属性的常见三种方式。我们知道,大部分情况我们的自定义View需要有更多的灵活性,比如我们在xml中指定了颜色大小等属性,在程序运行时候控件就能展示出相应的颜色和大小。所以我们需要自定义属性。我们还知道,当在布局文件中加入某个控件的时候,会调用该View的构造方法原创 2017-01-30 11:55:35 · 1037 阅读 · 0 评论 -
Activity的四种启动模式任务栈图解
昨天在该平台发布了第一篇文章,遇到一些小问题,可能《知道了》平台处于创业初期,还待慢慢成长,个人也很期待越来越多的人参与进来,一起交流,一对一式的提问,会比去别的地方搜索答案效率更高,掌握的知识点也会更透彻。当然,贵平台也兑现发文章得奖励,本人也成功领取了红包。继续高歌猛进,今天带来另一篇Activity的文章——Activity的四启动模式。该篇文章,会以图文讲解的方式带你彻底掌握Activit原创 2016-12-24 22:55:23 · 1619 阅读 · 1 评论 -
Android隐式启动Activity可能存在的坑
转载本专栏文章,请注明出处,尊重原创 。文章博客地址:道龙的博客 本篇文章,对隐式启动Activity再做分析。 有些人可能会说了,隐式启动活动不是很简单吗?这有什么不理解的?话先别说的这么早,对于隐式启动,还是具有很大的坑要爬的,当然,您如果是一个资深开发者就另当别论了。 本篇文章,我们从最简单的开始,一步步引入,相信这样的方式,读起来也会轻松一些。 我们平时启动一个活动,会通过两种方式。1、显示启动;2、隐式启动。原创 2016-12-24 12:08:24 · 15386 阅读 · 1 评论 -
Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作。先对知识点总结:SQLite数据库轻量级关系型数据库创建数据库需要使用的api:SQLiteOpenHelper必须定义一个构造方法://arg1:数据库文件的名字//arg2:游标工厂,用不到//arg3:数据库版本,做版本升级public MyOp原创 2016-11-26 19:26:41 · 2078 阅读 · 0 评论 -
AsyncTask还要知道的一些知识
在之前的博客中,对AsyncTask做过详细分析,而且也以小案例的形式,介绍如何基本的使用它。今天再来探讨它,更多的认识,尤其在面试中以下面方式回答,可能印象分更多一些。面试题:讲一讲您对AsyncTask的理解:可以简单介绍之前文章的内容详解Android中AsyncTask的使用,再介绍一下下面的几点。首先AsyncTask的几个基本方法:protected原创 2016-11-22 10:23:28 · 601 阅读 · 0 评论 -
Android视频媒体相关,VideoView和开源框架vitamio
虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式、性能等各方面都十分有限,但是Vitamio的确强大到没朋友!Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。Vitamio 功能强大,能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,R原创 2016-11-12 20:42:34 · 2607 阅读 · 0 评论 -
Android音频焦点处理相关的方法
有这么一种场景:你打开qq音乐、优酷客户端、视频播放的时候。这个时候突然来电显示了,此时所有的MediaPlayer相关的服务或者响应都进入“休眠”状态。那么,这个功能是怎么实现的呢?看到这篇文章的时候,原理其实很简单。只修要复制下面的d代码就能完成这个功能。1、首先要创建一个AudioManager//创建audioMangerAudioManager audioManager =原创 2016-11-12 15:04:17 · 1435 阅读 · 0 评论 -
Android5.0特性ToolBar
>Toolbar是什么?大概说一下它的官方介绍。Toolbar是应用的内容的标准工具栏,`可以说是Actionbar的升级版`,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的。相比Actionbar Toolbar最明显的一点就是变得很`自由,可随处放置`,因为它是作为一个`ViewGroup来定义使用的`,所以单纯使用ActionBar已经稍显过时了,它的一些方法已被原创 2016-11-03 11:02:13 · 786 阅读 · 0 评论 -
Android MediaPlayer的生命周期
MediaPlayer的状态转换图也表征了它的生命周期,搞清楚这个图可以帮助我们在使用MediaPlayer时考虑情况更周全,写出的代码也更具健壮性。接下来用几张图,来慢慢演变它的生命周期过程:图一:初识几个API,了解播放暂停图二:了解stoped状态与其它状态关系图三:Preparing以及它的回调方法图四:需要考虑的两个状态。Error和释放内存E原创 2016-10-23 22:57:20 · 1655 阅读 · 0 评论 -
使用Intent传递对象
Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动、发送广播、启动服务等。在进行上述操作的时候,我们还可以在Intent 中添加一些附加数据,以达到传值的效果,比如在FirstActivity 中添加如下代码: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); inten原创 2016-10-18 09:56:29 · 660 阅读 · 0 评论 -
Android 异步查询框架AsyncQueryHandler的使用
AsyncQueryHandler简介:异步的查询操作帮助类,可以处理增删改(ContentProvider提供的数据)使用场景:在一般的应用中可以使用ContentProvider去操作数据库。这在数据量很小的时候是没有问题的,但是如果数据量大了,可能导致UI线程发生ANR异常(超过5秒)。当然你也可以写个Handler去做这些操作,只是你每次使用Co原创 2016-10-18 09:06:36 · 1364 阅读 · 0 评论 -
Android中GridView的一些特殊属性
GridView的一些特殊属性:1.android:numColumns=”auto_fit” //GridView的列数设置为自动2.android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度3.android:stretchMode=”columnWidth"//缩放与列宽大小同步4.andr原创 2016-10-15 11:28:10 · 865 阅读 · 0 评论 -
Android初级教程:RatingBar的使用
记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了。那么本篇文章就对RatingBar的使用做一个基本的认识。接下来就是正题,那就是对于RatingBar,我到底想要做些什么。一般都有这样的需求: 1.怎样实现一个RatingBar.这是一个很基本的问题,实现不出来,那么其他的东西自然不用说了,而且里面是有一个附加的子问题,原创 2016-10-05 10:55:15 · 1485 阅读 · 0 评论 -
Android快速关联V4包的方式
很多时候需要管理v4包,当然有很多种办法去关联。本人觉得最快速的方式,是通过添加配置文件的方式。只需要ctrl+c和ctrll+v就能解决了方法如下:1、新建一个android-support-v4.jar.properties文件名2、找到自己的v4包路径,写在这个配置文件里面,比我我的位置:src=D:\prograssinstall\android\AndroidDevelope原创 2016-09-30 11:00:14 · 1218 阅读 · 0 评论 -
Android设置item的行间距,以及去掉分割线方法
1.设置item的行间距:可以在xml布局文件中的listView下设置xml属性:android:divider="#00000000"android:dividerHeight="18dp"解释:分隔线透明,高度为18dp。2.去掉item之间的分割线:每个item之间都有分割线,如果单纯想去掉分割线,方法还是很多的:法1:设置android:div原创 2016-09-09 22:59:35 · 1518 阅读 · 0 评论 -
Android事件分发回传机制
转载本博客,请注明出处:之前以一个爷爷给孙子分馒头的故事,初探了安卓中的事件分发机制——点击打开链接 http://blog.csdn.net/qq_32059827/article/details/52122320。今天再以一张图对其做一个解释,事件的流程步骤,标注在了图片中。如下:原创 2016-09-09 18:43:22 · 1015 阅读 · 0 评论 -
Android优化之ViewPager的懒加载
转载本博客请注明出处:出于对用户小号流量的考虑,有必要对viewpage做懒加载。对于什么是懒加载,首先应该理解什么是预加载:对于ViewPage默认是加载三个pages,即用户选择当前界面的时候,该page两边的pages都已经初始化完毕(数据、界面、网络等)。这就是预加载机制。对于ViewPage的使用详解,请看之前的博客,地址:点击打开链接 http://blog.csdn.n原创 2016-09-09 16:15:20 · 3567 阅读 · 0 评论 -
Android开发 Jar mismatch! Fix your dependencies的问题
有时候,当我们在导入Library的时候,会遇到Jar mismatch! Fix your dependencies这个错误。可能有如下原因:1、两个项目的android-support-v4.jar版本不同,最简单的解决办法就是把新项目的android-support-v4.jar删除,只留下其中的一个就可以。2、有的时候是ADT不同所致,重新导入一下ADT。3、换一下projec原创 2016-09-01 07:45:41 · 969 阅读 · 0 评论 -
The type org.apache.http.HttpResponse cannot be resolved. It is indirectly referenced from required
在Android 6.0(API 23)中,Google已经移除了移除了Apache HttpClient相关的类、HttpResponse类。缺失jar包使用HttpResponse等会报错:The type org.apache.http.HttpResponse cannot be resolved. It is indirectly referenced from required翻译 2016-08-31 08:49:47 · 2370 阅读 · 0 评论 -
Android初级教程:ViewPage使用详解
ViewPage使用之一就是轮播广告,就以此为出发点,来详细解析一下ViewPage的使用和加载机制。首先直接上一个damo,在代码中我直接给出了详细的解释。然后,再在案例后边,对加载机制做一个解释。Demo:原创 2016-08-24 19:19:32 · 1420 阅读 · 2 评论 -
Android-满屏幕拖动的控件
本文转载自师兄一篇博客:http://blog.csdn.net/yayun0516/article/details/52254818觉得跟之前的模拟小火箭很相似,又有学习的地方,能作为知识补充。所以转载一起学习。大家也可以关注他的文章哦。也就是,用户可以随心所欲的拖动控件,布局文件很简单就是一个Button控件:xml version="1.0" encoding转载 2016-08-20 23:48:09 · 1042 阅读 · 0 评论 -
Android初级教程:如何自定义一个状态选择器
有这样一种场景:点击一下某个按钮或者图片(view),改变了样式(一般改变背景颜色)。这个时候一种解决方案,可能就是状态选择器。接下来就介绍如何实现状态选择器:步骤:一、新建这样的文件夹:res/drawable二、创建一个xml文件;这里命名为my_select.xml(注意选择select类型的文件)三、接下来在里面写如下代码: <item androi原创 2016-08-15 22:56:01 · 1716 阅读 · 0 评论 -
Android初级教程:shape的基本用法
转载本文请注明出处:在自定义进度条之前,先来学习一下shape的用法。一、在res目录下边新建一个drawble目录(如果您会自定义状态选择器的话,这将很简单)二、新建一个android.xml文件,找到shape,点击finish我们可以看到shape属性并不多,截图如下:现在逐步介绍常用的属性用法:1、表示 “角”,表示圆角 (1)、radius原创 2016-08-14 11:02:12 · 2136 阅读 · 2 评论 -
Android初级教程:对文件和字符串进行MD5加密工具类
转载请注明出处:之前写过一篇博文,是针对字符串进行md5加密的。今天对其进行改进,加入针对某个文件,进行md5加密,并获取加密后的值。并把两个功能封装成了工具类,如果有需要这个算法的,可直接使用。直接上算法封装的工具类代码:package com.itydl.utils;import java.io.File;import java.io.FileInputStream;i原创 2016-08-13 16:50:39 · 2955 阅读 · 0 评论 -
Android初级教程:Android中解析方式之pull解析
在安卓中有很多种解析方式。按照大方向有xml解析和json解析。而,细致的分,xml和json解析各有自己的很多解析方式。今天这一篇主要介绍xml解析中的pull解析。对于xml的解析方式,我之前在javaweb一些知识中有写过dom和dom4j等等解析方式。有兴趣的读者可以去javaweb篇里面找相关的内容。先自定义一个数据源,假设就是访问服务器返回的xml数据文件名称为weather.xm原创 2016-08-12 17:56:51 · 1055 阅读 · 0 评论 -
Android初级教程:使用xml序列器
之前备份短信的时候生成xml都是手动拼写的,有一个问题:当短信里面存在这样的标签的时候,最后结果就不是完整的xml文件,显然出错。但是,今天使用序列化器的方式,就能有效的解决上边遇到的问题。就看一下序列化器如何生成xml文件:给活动定义一个布局文件,里面知识简单的加入一个按钮:<Button android:layout_width="wrap_content"原创 2016-08-11 14:26:39 · 745 阅读 · 0 评论 -
Android初级教程:屏幕分辨率
在app编码中经常需要获取手机的屏幕分辨率(宽*高),原来我直接上网拷贝代码,但在使用过程中却发现诸多不便。不便一:下面代码中的getWidth和getHeight在adt上提示deprecated已经废弃了,实在扎眼WindowManager wm = getWindowManager(); Display display = wm.getDefaultDisplay();原创 2016-08-04 22:33:18 · 1284 阅读 · 0 评论 -
Android初级教程:单击事件的传递机制初谈
以上仅是小试牛刀,后续有很多事件传递机制,继续探讨。原创 2016-08-04 19:51:04 · 749 阅读 · 0 评论 -
This version of the rendering library is more recent than your version of ADT plug-in. Please update
预览layout.xml文件时提示:This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in导致无法正常预览布局文件;问题根源:SDK版本过高,ADT版本低。修改方式:1、原创 2016-04-02 20:59:35 · 608 阅读 · 0 评论 -
Android初级教程通过简要分析“土司”源码,来自实现定义土司理论探讨
由于系统自带的土司瞬间即逝,而且非常难看。因此我们就希望自定义自己的土司风格。有些实例就是基于自定义土司完成的,例如金山卫士的火箭发射,基本原理就是个土司。但是在做出自己的土司风格之前,还是要简要分析一下土司的源码。看看系统自带的土司是如何实现的。此篇文章,对土司源码进行简要分析(由于笔者能力有限,全部源代码每一行都看懂不切实际,其实有些时候没必要太过追求细节,没必要追求每一行都看懂,能抓住源码的原创 2016-07-24 17:29:28 · 1616 阅读 · 0 评论 -
Android初级教程反射+AIDL+内容观察者监控黑名单号码代码模板
对于想要拦截一些莫名的陌生号码,就需要电话拦截功能与删除其电话记录功能。拦截的主要业务逻辑,分别是在一个服务里面进行:1、注册电话监听;2、取消注册电话监听(当然注册于取消是在服务里面建立一个广播接收者)。删除电话日志的功能,是靠内容观察者和内容提供者。下面给出实现电话监听,取消注册监听,内容观察者监听电话数据库状态的主要代码。对于以后开发此类产品,不需要去查看系统源码,复制粘贴这段代码就原创 2016-07-21 19:02:38 · 5445 阅读 · 1 评论 -
Android初级教程对大量数据的做分页处理理论知识
有时候要加载的数据上千条时,页面加载数据就会很慢(数据加载也属于耗时操作)。因此就要考虑分页甚至分批显示。先介绍一些分页的理论知识。对于具体用在哪里,会在后续博客中更新。分页信息1,一共多少条数据 select count(*) from blacktb; 性能低下 原因: sql解析器先查询数据字典,把*转成所有的列名和列的类型原创 2016-07-16 09:05:06 · 6914 阅读 · 0 评论 -
关于AndroidSDK配置时的tools目录下找不到adb.exe的错误
在配置android SDK的时候,有时会发现在android-sdk-windows\tools目录下并没有adb.exe,这时候打开Eclipse导入SDK就会报错。这种情况怎么办呢?不要怕,按照下面的步骤慢慢来就能解决。找到你的android-sdk-windows\platform-tools目录,打开后会发现里面有许多文件。找到adb.exe,AdbWinApi.dll,AdbW原创 2016-07-15 21:00:53 · 6925 阅读 · 0 评论 -
Android初级教程初谈自定义view自定义属性
有些时候,自己要在布局文件中重复书写大量的代码来定义一个布局。这是最基本的使用,当然要掌握;但是有些场景都去对应的布局里面写对应的属性,就显得很无力。会发现,系统自带的控件无法满足我们的要求,这个时候就要考虑自定义控件。自定义view的世界,也很浩瀚,个人需要学的地方还有很多很多。自定义view,会节省开发效率,很有必要学习其基本原理和方法。接下来就对自定义view,做一个初步的认识,一步步了解封原创 2016-07-10 20:07:44 · 2831 阅读 · 0 评论 -
Android初级教程以动画的形式弹出窗体
这一篇集合动画知识和弹出窗体知识,综合起来以动画的形式弹出窗体。动画的知识前几篇已经做过详细的介绍,可翻阅前面写的有关动画博文。先简单介绍一下弹出窗体效果的方法:首先,需要窗体的实例:PopupWindow window = new PopupWindow(contentView, width, height);总共需要三个参数,三个参数的含义分别是: / **原创 2016-07-09 20:43:57 · 2119 阅读 · 2 评论 -
Android初级教程获取手机位置信息GPS与动态获取最佳方式
简单介绍一下gps定位的操作。主要是靠locationmanger这个api完成的一些操作;通过获取这个实例,然后调用它的requestLocationUpdates方法进行注册。传入的参数分别有以下含义: * 1、provider:哪种定位方式 * 2、minTime:定位的时间差 * 3、minDistan原创 2016-07-08 11:25:01 · 8479 阅读 · 2 评论 -
Android初级教程获取手机系统联系人信息
在手机内部,对联系人信息存在对应的数据库。我们创建的而联系人信息都存在这张表中。如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注:好了,现在可以根据数据库里面的数据来写代码了。代码如下:package com.itydl.getcontacts;import com.itheima.getcontacts.domain.Con原创 2016-07-06 15:53:10 · 1796 阅读 · 0 评论 -
Android初级教程XUtils实现“断点续传”下载
对于“断电续传”,在任何开发中都显得很重要。xutils对此封装的很好了,可以很简单的实现很多下载功能,其中就包括“断点续传”主要代码如下:package com.itydl.xutils;import java.io.File;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.原创 2016-07-03 22:19:48 · 3668 阅读 · 0 评论 -
Android初级教程理论知识(第十章Fragment与动画)
Fragment用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容生命周期方法跟Activity一致,可以理解把其为就是一个Activity定义布局文件作为Fragment的显示内容//此方法返回的View就会被显示在Fragment上@Overridepublic View onCreateView(LayoutInflater i原创 2016-06-24 21:19:40 · 3542 阅读 · 0 评论 -
Android初级教程调用手机拍照与摄像功能
这个小案例建议在手机上运行。package com.example.camera;import java.io.File;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.a原创 2016-06-23 22:48:00 · 4142 阅读 · 0 评论