- 博客(91)
- 资源 (5)
- 收藏
- 关注
转载 Android 自定义ViewGroup 实战篇 -> 实现FlowLayout
Android 自定义ViewGroup 实战篇 -> 实现FlowLayout1、概述上一篇已经基本给大家介绍了如何自定义ViewGroup,如果你还不了解,请查看:Android 手把手教您自定ViewGroup ,本篇将使用上篇介绍的方法,给大家带来一个实例:实现FlowLayout,何为FlowLayout,如果对Java的Swing比较熟悉的话一定不会陌生,就是控件根
2016-01-31 22:53:26 413
转载 Android 手把手教您自定义ViewGroup(一)
Android 手把手教您自定义ViewGroup(一)1、概述在写代码之前,我必须得问几个问题:1、ViewGroup的职责是啥?ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属性,都是为用于告诉容器的),我们的宽度(layout_width)、高度(layout_height)、对齐方式(
2016-01-31 22:47:40 363
转载 Android之LinearGradient线性渲染
Android之LinearGradient线性渲染一,简介Paint p=new Paint();LinearGradient lg=new LinearGradien(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR); 参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为
2016-01-31 22:24:18 949
转载 Android之LayoutParams的用法
LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去
2016-01-31 15:23:57 353
原创 Android之自定义dialog对话框
Android之自定义dialog对话框AlertDialog.Builder builder = new Builder( WoDeKeCheng_XianXia_activity.this); // 自定义一个布局文件 View view = View.inflate(WoDeKeCheng_XianXia_activity.this, R.layo
2016-01-31 11:29:16 286
转载 Android之Android 自定义控件与属性
Android之Android 自定义控件与属性自定义控件很多时候需要我们自己动手画出我们想要的控件,或者图形。有了他你会有更加开阔的UI设计.直接上代码1、xml文件[html] view plain copy LinearLayout xmlns:android="http://schemas.android.co
2016-01-31 11:12:25 271
转载 UTF-8的BOM头
UTF-8的BOM头UTF-8 编码的文件可以分为no BOM 和 BOM两种格式。有bom头的存储或者字节流,它一定是unicode字符集编码。到底属于那一种(utf-8还是utf-16或是utf-32),通过头可以判断出来。在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码UTF-8的BOM是 EFBBBF,因为UE载入UTF-8文件
2016-01-30 21:59:13 494
转载 优化Android Studio/Gradle构建
优化Android studio/Gradle架构 使用Android Studio进行开,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:
2016-01-30 14:20:28 308
原创 android studio 基础配置
android studio 基础配置默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面。Settings --> Appearance --> Theme ,选择 Darcula 主题即可 系统字体设置如果你的Android Studio界面中,中文显示有问题,或者选择中文目录显示有问题,或者想修改菜单栏的字体,可以这么设置。Settin
2016-01-30 14:18:34 434
原创 打造你的开发神器——介绍Android Studio上的几个插件
打造你的开发神器——介绍Android Studio上的几个插件1. Android Parcelable code generator顾名思义,这是个生成实现了Parcelable接口的代码的插件。在你的类中,按下alt + insert键弹出插入代码的上下文菜单,你会看到在下面有一个Parcelable,如下所示。选择它之后,就会在你的类当中插入实现了Parce
2016-01-30 13:51:32 819
原创 Android之使用 Intent 传递对象(一)Parcelable 方式
Android之使用 Intent 传递对象(一)Parcelable 方式一,简介除了 Serializable之外,使用 Parcelable 也可以实现相同的效果,不过不同于将对象进行序列化,Parcelable 方式的实现原理是将一个完整的对象进行分解,而分解后的每一部分都是 Intent 所支持的数据类型,这样也就实现传递对象的功能了。下面我们来看一下 Parcela
2016-01-29 13:03:09 665
原创 Android之使用 Intent 传递对象(一)Serializable 方式
Android之使用 Intent 传递对象(一)Serializable 方式一,简介使用 Intent 来传递对象通常有两种实现方式, Serializable 和 Parcelable, 本小节中我们先来学习一下第一种的实现方式。Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。至于序列
2016-01-29 13:01:20 441
原创 Android之全局获取 Context 的技巧
Android之全局获取 Context 的技巧一,简介Android 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。 而我们可以定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比如说全局 Context。定制一个自己 Application 其实并不复杂,首先我们需要创建一个 MyApplic
2016-01-29 12:50:34 508
原创 Android之传感器(三)方向传感器
Android之传感器(三)方向传感器一,简介要说 Android 中另外一个比较常用的传感器应该就是方向传感器了。方向传感器的使用场景要比其他的传感器更为广泛,它能够准确地判断出手机在各个方向的旋转角度,利用这些角度就可以编写出像指南针、地平仪等有用的工具。另外,在本章开始时介绍的通过旋转设备来控制方向的赛车游戏,也是使用方向传感器来完成的。那么我们仍然还是先来看一下方向
2016-01-29 12:46:53 3396
原创 Android之传感器(二)加速度传感器
Android之传感器(二)加速度传感器一,简介Android 中的加速度传感器则是提供了一种机制,使得我们能够在应用程序中获取到手机当前的加速度信息, 合理利用这些信息就可以开发出一些比较好玩的功能。二,加速度传感器的用法正如前面所说的一样,每种传感器的用法都是大同小异的,在上一节中你已经掌握了光照传感器的用法,因此,重复的部分我们就不再介绍了,这里在使用加速度传感器
2016-01-29 11:26:26 1308
原创 Android之传感器(一)光照传感器
Android之传感器(一)光照传感器一,简介手机中内置的传感器是一种微型的物理设备,它能够探测、感受到外界的信号,并按一定规律转换成我们所需要的信息。Android 手机通常都会支持多种类型的传感器,如光照传感右器、加速度传感器、地磁传感器、压力传感器、温度传感器等。当然,Android 系统只是负责将这些传感器所输出的信息传递给我们,至于具体如何去利用这些信息就要充分发
2016-01-29 11:21:30 2874
转载 php中大括号的用法和意义{}
php中大括号的用法和意义{}标签: 变量大括号意义数字用法2013-01-24 00:04 4559人阅读 评论(0)收藏 举报分类: PHP(11) 在PHP中,大括号“{}”可以起到如下作用:将多个独立语句合并为一个复合语句,例如 if ... else ...中经常如此使用在变量间接引用中进行定界,避免歧义
2016-01-28 16:14:21 474
原创 Android之网络编程(五)简易联接框架
Android之网络编程(五)简易联接框架一,简介目前你已经掌握了 HttpURLConnection 和 HttpClient 的用法,知道了如何发起 HTTP 请求, 以及解析服务器返回的数据, 但也许你还没有发现, 之前我们的写法其实是很有问题的。因为一个应用程序很可能会在许多地方都使用到网络功能, 而发送 HTTP 请求的代码基本都是相同的,如果我们每次都去编写一遍发送
2016-01-28 15:23:15 283
原创 Android之网络编程(四)解析 JSON 格式数据
Android之网络编程(四)解析 JSON 格式数据一,使用JSONObject解析 JSON 数据也有很多种方法,可以使用官方提供的 JSONObject,也可以使用谷歌的开源库 GSON。另外,一些第三方的开源库如 Jackson、FastJSON 等也非常不错。本节中我们就来学习一下前两种解析方式的用法。修改 MainActivity 中的代码,如下所示:publi
2016-01-28 15:18:30 480
原创 Android之网络编程(三)使用 HttpClient
Android之网络编程(三)使用 HttpClient一,简介HttpClient是 Apache提供的 HTTP网络访问接口, 从一开始的时候就被引入到了 AndroidAPI 中。它可以完成和 HttpURLConnection 几乎一模一样的效果,但两者之间的用法却有较大的差别,那么我们自然要看一下 HttpClient 是如何使用的了。首先你需要知道,HttpClie
2016-01-28 15:08:07 315
原创 Android之网络编程(二)使用 HttpURLConnection
Android之网络编程(二)使用 HttpURLConnection一,简介在 Android 上发送 HTTP 请求的方式一般有两种,HttpURLConnection 和 HttpClient,本小节我们先来学习一下 HttpURLConnection 的用法。首先需要获取到 HttpURLConnection 的实例,一般只需 new 出一个 URL 对象,并传入目标的
2016-01-28 15:00:56 374
原创 Android之网络编程(一)WebView 的用法
Android之网络编程(一)WebView 的用法一,简介Android 早就已经考虑到了这种需求,并提供了一个 WebView控件,借助它我们就可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种各样的网页。WebView 的用法也是相当简单,下面我们就通过一个例子来学习一下吧。新建一个WebViewTest项目,然后修改 activity_main.xml 中的代
2016-01-28 14:52:12 460
原创 utf8和utf-8的区别
utf8和utf-8的区别 一、在php和html中设置编码,请尽量统一写成“UTF-8”,这才是标准写法,而utf-8只是在window中不区分大小写的写法而已,其次,大部分情况简写成“UTF8”或“utf8”程序也可以识别,但在ie浏览器就不识别它了,所以,最好,严格写成“UTF-8”,比如: 二、在数据库设置编码的时候,必须写成“utf8”,因为MySQL
2016-01-27 21:00:53 305
原创 Android之服务(五)IntentService的使用
Android之服务(五)IntentService的使用一,简介服务中的代码都是默认运行在主线程当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现 ANR(Application NotResponding)的情况。所以这个时候就需要用到 Android 多线程编程的技术了,我们应该在服务的每个具体的方法里开启一个子线程,然后在这里去处理那些耗时的逻辑。因此,一个
2016-01-27 15:55:41 439
原创 Android之服务(四)前台服务
Android之服务(四)前台服务一,简介服务几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是服务的系统优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服务。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台服务。前台服务和普通服务最大的区别就在于,它会一直有一个正在运行的图标在系统的状
2016-01-27 15:48:51 457
原创 Android之服务(三)服务的生命周期
Android之服务(三)服务的生命周期我们学习过了活动以及碎片的生命周期。类似地,服务也有自己的生命周期,前面我们使用到的 onCreate()、onStartCommand()、onBind()和 onDestroy()等方法都是在服务的生命周期内可能回调的方法。一旦在项目的任何位置调用了 Context 的 startService()方法,相应的服务就会启动起来,并回调
2016-01-27 15:43:43 261
原创 Android之服务(二)活动和服务进行通信
Android之服务(二)活动和服务进行通信一,简介我们学习了启动和停止服务的方法,不知道你有没有发现,虽然服务是在活动里启动的,但在启动了服务之后,活动与服务基本就没有什么关系了。确实如此,我们在活动里调用了 startService()方法来启动 MyService 这个服务,然后 MyService 的 onCreate()和onStartCommand()方法就会得到执
2016-01-27 15:39:09 844
原创 Android之服务
Android之服务一,服务简介了解了 Android 多线程编程的技术之后,下面就让我们进入到本章的正题,开始对服务的相关内容进行学习。 作为 Android 四大组件之一, 服务也少不了有很多非常重要的知识点,那我们自然要从最基本的用法开始学习了。二,定义一个服务首先看一下如何在项目中定义一个服务。 新建一个 ServiceTest项目, 然后在这个项目中新增一个名
2016-01-27 15:33:27 245
原创 Android之使用 AsyncTask
Android之使用 AsyncTask一,简介为了更加方便我们在子线程中对 UI 进行操作, Android 还提供了另外一些好用的工具,AsyncTask 就是其中之一。借助 AsyncTask,即使你对异步消息处理机制完全不了解,也可以十分简单地从子线程切换到主线程。当然,AsyncTask 背后的实现原理也是基于异步消息处理机制的,只是 Android 帮我们做了很好的
2016-01-27 15:26:52 298
原创 Android之异步消息处理机制
Android之异步消息处理机制一,简介Android 中的异步消息处理主要由四个部分组成,Message、Handler、MessageQueue和Looper。 其中Message和Handler在上一小节中我们已经接触过了, 而MessageQueue和Looper对于你来说还是全新的概念,下面我就对这四个部分进行一下简要的介绍。1. MessageMessage 是
2016-01-27 15:22:44 425 1
原创 Android之多线程编程
Android之多线程编程一,多线程的基本用法Android 多线程编程其实并不比 Java 多线程编程特珠,基本都是使用相同的语法。比如说,定义一个线程只需要新建一个类继承自 Thread,然后重写父类的 run()方法,并在里面编写耗时逻辑即可,如下所示:class MyThread extends Thread {@Overridepublic void run()
2016-01-27 15:16:10 252
转载 Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)
Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)http://mzh3344258.blog.51cto.com/1823534/808837
2016-01-27 10:47:57 532
原创 Android调用系统内部功能错误
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW url Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(url
2016-01-27 09:02:34 342
原创 android之播放视频
android之播放视频播放视频文件其实并不比播放音频文件复杂,主要是使用VideoView 类来实现的。这个类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。VideoView 的用法和MediaPlayer 也比较类似,主要有以下常用方法:那么我们还是通过一个实际的例子来学习一下吧,新建PlayVideoTest 项目,然后修改activi
2016-01-26 16:26:35 477
原创 android之播放多媒体文件一(播放音频)
android之播放多媒体文件一(播放音频)在Android 中播放音频文件一般都是使用MediaPlayer 类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了MediaPlayer 类中一些较为常用的控制方法。简单了解了上述方法后,我们再来梳理一下MediaPlayer 的工作流程。首先需要创建出一个MediaPl
2016-01-26 16:19:45 3052
原创 android之调用摄像头
android之调用摄像头一,调用摄像头拍照很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片作为用户的头像,这时打开摄像头拍张照是最简单快捷的。下面就让我们通过一个例子来学习一下,如何才能在应用程序里调用手机的摄像头进行拍照。新建一个ChoosePicTest 项目,然后修改activity_main.xml 中的代码,如下所示:<LinearL
2016-01-26 15:40:14 601
原创 android之通知(二)高级用法
android之通知(二)高级用法现在你已经掌握了创建和取消通知的方法,并且知道了如何去响应通知的点击事件。不过通知的用法并不仅仅是这些呢,那么本节中我们就来探究一下通知更多的高级技巧。观察Notification 这个类,你会发现里面还有很多我们没有使用过的属性。先来看看sound这个属性吧,它可以在通知发出的时候播放一段音频,这样就能够更好地告知用户有通知到来。sound
2016-01-26 15:23:06 302
原创 android之通知(一)
android之通知(一)一,使用通知通知(Notification)是Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。Android 的通知功能获得了大量用户的认可和喜爱,就连iOS 系统也在5
2016-01-26 15:18:18 471
原创 Android之内容提供器
Android之内容提供器一,内容提供器简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式。不同于文件存储和 SharedPreferences 存储中的两种全局可读写操作模
2016-01-25 15:08:33 482
原创 Android之数据持久化(sqllite数据库)四
Android之数据持久化(sqllite数据库)四一,使用事务前面我们已经知道,SQLite 数据库是支持事务的,事务的特性可以保证让某一系列的操作要么全部完成,要么一个都不会完成。那么在什么情况下才需要使用事务呢?想象以下场景,比如你正在进行一次转账操作,银行会将转账的金额先从你的账户中扣除,然后再向收款方的账户中添加等量的金额。看上去好像没什么问题吧?可是,如果当你账户中
2016-01-25 14:59:45 339
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人