- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 实现自动读取短信验证码功能
实现自动读取短信验证码功能使用观察者模式监听短信的变化/** * 监听短信数据库变化 * @author Jeff * @describe * @date 2018/5/24. */public class SmsDatabaseObserver extends ContentObserver { // 只检查收件箱 public static final ...
2018-07-05 15:14:15 12198
原创 监听手机网络状态
监听手机网络状态1、实现接收网络状态变化的广播接收者public class NetworkChangedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int netWorkStates = N...
2018-07-05 15:13:25 1124
原创 常用的正则匹配
常用的正则匹配/** * 判断是否是可以访问的链接 * * @deprecated 不能满足头像URL判断规则,可能URL过长导致ANR * @param str * @return */public static boolean isURL(String str) { Pattern pattern = Pattern.compile("^([hH][tT]{2}[p...
2018-07-05 15:12:35 344
原创 获取Drawable目录下的资源
获取Drawable目录下的资源/** * 通过文件名获取Drawable目录下的图片资源 * * @param context 上下文对象 * @param name 文件名 * @return bitmap */public static Bitmap getDrableImage(Context context, String name) { Application...
2018-07-05 15:11:18 2337
原创 倒计时效果实现
倒计时效果实现1、倒计时工具类的实现public class CountDownTimerUtils extends CountDownTimer implements View.OnClickListener { private static final String TAG = CountDownTimerUtils.class.getSimpleName(); /...
2018-07-05 15:09:43 417
原创 APP内发送邮件
实现APP内发送邮件功能1、在项目中导入相关架包邮件相关架包获取地址2、申请邮箱,进行配置以163邮箱为例,申请账号后,设置POP3/SMTP/IMAP,并开启客户端授权密码,之后的在APP内的登录将使用邮箱地址+授权码的方式进行登录。 3、发送邮件的代码实现/** * @author Jeff * @describe * @date 2018/5/...
2018-07-05 15:08:53 3424
原创 Android 中的时间日期控件
TextClock以字符串的形式显示当前时间更多方法及属性请查看官方API API17+在布局文件中添加<TextClock android:id="@+id/textClock" android:layout_width="match_parent" android:layout_height="wrap_content" />TextCl
2018-01-14 15:00:07 22858
原创 FrameLayout的子类ViewAnimator
ViewAnimatorpublic class ViewAnimator extends FrameLayout FrameLayout容器的基类,用于在其视图之间切换时执行动画。我们都了解FrameLayout布局的特性,在FrameLayout中添加的View都默认位于左上角,按照添加的顺序,最后添加的View位置最上层。ViewAnimator的使用就是调整ViewAnimator包裹的
2017-08-04 22:43:57 533
原创 SwipeRefreshLayout(Android的下拉刷新组件)
SwipeRefreshLayout(Android的下拉刷新组件)public class SwipeRefreshLayout extends ViewGroup implements NestedScrollingParent, NestedScrollingChild只要用户可以通过垂直滑动手势刷新视图的内容,就应该使用SwipeRefreshLayout。 实例化此视图的活动应该添加一
2017-08-04 22:40:56 618
原创 线程通信之AsyncTask
线程通信之AsyncTaskHandler消息的处理机制,就是Android的异步消息处理机制的核心思想,一条消息通过这样一个流程,从子线程进入到主线程,从不能更新UI变成了可以更新UI。为了更方便我们在子线程中对UI进行操作,除了Handler+Thread的方式,Android提供了另外一些好用的工具:AsyncTask、ThreadPoolExecutor、IntentService。本片内容
2017-08-04 22:39:18 310
原创 Android意图-Intent详解
Android意图-Intent详解Intent是Android应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己的意图—想要启动哪个组件(activity,service,broadcasts)。一、Intent启动不同组件的方法:1.ActivitystartActivity()startActivityForResult()2.ServicestartSer
2017-07-24 23:26:46 1345
原创 Activity的启动和关闭方法
Activity的启动和关闭方法一、Activity启动其他Activity有两种方法://启动其他Activityvoid startActivity(Intent intent);//指定请求码启动Activity,而且程序将会等到新启动的Activity的结果(重写onActivityResult方法获取)void startActivityForResult(Intent intent,
2017-07-23 00:19:00 5117
原创 Bundle类解析
Bundle类源码浅读从String键到各种Parcelable值的映射。使用场景:activity中用于保存activity的状态信息使用Intent传递封装到Bundle中的数据一、数据的存取方法:1.简单类型的数据存入putXXX():putByte(@Nullable String key, byte value)putChar(@Nullable String key, char
2017-07-22 22:17:20 2201
原创 Activity的生命周期
Activity的生命周期一、返回栈(Back Stack)Android使用Task(任务)管理activity,一个任务就是一组存放在栈中的activity集合,这个栈被称为返回栈(Back Stack)。栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们按下 Back 键或用 finish()方法去销毁一个活动时,处于栈顶的活
2017-07-22 13:30:57 451
原创 ViewPager解析
ViewPager简介:android.support.v4.view.ViewPager中的一个常用的控件。允许数据页从左到右或者从右到左翻页,因此这种交互也备受设计师的青睐。在APP中的很多场景都用得到,比如第一次安装APP时的用户引导页、图片浏览时左右翻页、广告Banner页等等都会用到ViewPager。
2017-07-19 01:37:47 561
原创 点9图的制作
9patch(.9)图9patch简介:Android系统由于系统和分辨率的多样性,界面适配是让开发者头疼的问题,很多控件的切图文件在不同屏幕上被放大拉伸后,边角会模糊失真,十分丑陋. 对不同的分辨率制作多个切图,又增大了安装包的大小. 于是Android专门制作了一种.9.PNG格式来解决这个问题. 这种格式的图片能按照设定来拉伸特定区域,而不是整体放大或缩小,从而保证了图片在各个分辨率的屏幕上都
2017-07-18 10:45:29 649
原创 LayoutInflater解读
LayoutInflater解读将一个布局XML文件实例化到相应的View对象。它从不直接使用。相反,使用 android.app.Activity#getLayoutInflater() 或Context#getSystemService检索已连接到当前Context对象的标准LayoutInflater实例,并为正在运行的设备正确配置。获取LayoutInflater实例的方式:1.使用Lay
2017-07-17 20:11:43 358
原创 LayoutParams的使用
LayoutParams的使用LayoutParams简介:LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式
2017-07-16 14:33:35 575
原创 onTouch事件的传递机制
onTouch事件的传递机制一、点击事件传递机制:1.view执行dispatchTouchEvent 方法,开始分发事件,返回值决定是否分发出去2.执行onInterceptHoverEvent 方法,判断是否中断事件,返回值决定是否传递给子View3.执行onTouchEvent 方法,处理事件,返回值告知系统event事件是否被消费二、流程图1.Touch事件分发(dispatchTo
2017-07-16 12:22:18 628
原创 为自定义View添加属性
为自定义View添加属性每一个控件在布局或是代码中都有其属性:<TextView android:id="@+id/tv_main" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize
2017-07-15 22:22:14 942
原创 构造Json字段
构造Json字段构造下面内容:{ "name":"张三", "age":23, "birthday":"1994-01-01", "school":"蓝翔", "major":["理发","挖掘机"], "married":false, "car":null}三种方法构造json字段
2017-07-08 20:35:56 329
原创 数据解析之JSON
数据解析之JSON数据结构Object (对象,在花括号中) Array (数组,在方括号中) 基本类型String 字符串(在双引号中)number 数字(整数或浮点数)逻辑值 (true,false)null 数据为空
2017-07-08 20:34:34 459
原创 数据解析之XML
数据解析之XML什么是 XML?XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准
2017-07-08 20:33:23 228
原创 数据库SQL的使用
数据存储之数据库SQLiteSQLite简介SQLite是一种轻量级的基于文件的数据库管理系统,是由C语言编写,实现了标准的SQL中CRUD操作,具有小巧、高效的特点。
2017-06-22 17:55:50 630
原创 数据存储之SharedPreference
数据存储之SharedPreferences默认存储在/data/data/包名/shared_prefs/文件名基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息等较简单的数据类型
2017-06-22 17:27:27 503
原创 数据存储之文件存储
数据存储之文件存储保存在内存中的数据是处于瞬间状态的,而保存在存储设备上的数据是持久的,一直存在,除非被删除。从该篇开始总结Android中的几种数据存储方式:文件存储SharedPreferences数据库SQLiteContentProvider
2017-06-22 17:18:10 468
原创 adb使用之查看手机内部文件
adb使用之查看手机内部文件直接演示操作过程管理员身份打开设备C:\Users\Lenovo>adb shellerror: more than one device and emulator上面提示有多个设备,这里要做的是断开多余设备,只留一个再次以管理员身份打开设备
2017-06-06 17:36:30 60110 4
原创 应用的调试及adb命令的使用
应用的调试及adb命令的使用安装路径第三方应用保存路径:data/app系统应用保存路径:system/appdata/data/包名文件夹:系统为每一个应用提供的一个专属空间DDMSDalvik debug monitor serviceADB(Android debug bridge:安卓调试桥)建立开发工具和Android设备之间的连接常用的ADB指令
2017-06-06 17:02:17 924
原创 Android之Menu解析
Menu的标签及属性菜单资源文件放在res/menu目录,使用menu标签作为根节点。item 菜单项group 分组
2017-05-31 22:09:25 766
原创 Android之Adapter解析
Android适配器解析认识Adapter什么是Adapter?Adapter对象充当AdapterView与该视图的底层数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目进行查看。
2017-05-25 12:09:59 678
原创 网络编程之Volley解析
Volley简介在2013年Google I/O大会上推出了一个新的网络通信框架Volley。Volley既可以访问网络取得数据,也可以加载图片,并且在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕
2017-05-05 18:26:51 338
转载 结合 Android 浅谈 Builder 模式
前言Builder模式,对象创建型的设计模式。说起设计模式,可能会觉得有点高深莫测,其实不然,我们每天写代码都在多多少少的和各种各样的设计模式接触,只是没有察觉而已。转载自IAM四十二的博客,这里就来说一说Builder模式。
2017-04-25 10:57:55 479
转载 OkHttp 的详细介绍
随着 Android 版本和性能的不断更新和增强,网络请求的方法也在不断变化着,从 HttpURLConnetion 到 Apache Http Client,再到之前热门的 Volley,最后到现在的 OkHttp,网络请求的方法变得越来越简单化和方便化了,而在这篇文章所要介绍的就是目前最新也是最为热门的网络请求开源框架 —— OkHttp。
2017-04-25 10:53:53 640
转载 Android ConstraintLayout使用指南
升级Android Studio 2.3之后,IDE默认生成的Activity布局都是以ConstraintLayout做为根布局,体验了一把这个Google去年就开始力推的ConstraintLayout后,觉得非常不错,本文用于记录ConstraintLayout各个方面的使用知识。
2017-04-25 10:05:58 1867 1
原创 如何提交代码到GitHub
关于GitHubGitHub创办于2008年,被市场研究公司Forrester称作“开发者的Facebook”,有逾1000万名注册用户在协作开发2500万个软件项目。个人开发者利用GitHub存储、编写代码,并与其他开发者进行协作;企业和政府机构则利用它托管和管理软件项目。作为开源代码库以及版本控制系统,随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方
2017-04-22 17:56:40 496
原创 Android Studio2.3.1安装遇到的问题
Android Studio的版本最近更新到了2.3.1,本文将有助你解决安装时遇到的一些问题
2017-04-18 19:03:13 1954
翻译 探索 Android Studio
Android Studio 是基于 IntelliJ IDEA 的官方 Android 应用开发集成开发环境 (IDE)。 除了 IntelliJ 强大的代码编辑器和开发者工具,Android Studio 提供了更多可提高 Android 应用构建效率的功能
2017-04-18 17:32:42 616
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人