android历程
文章平均质量分 69
亦心谷
这个作者很懒,什么都没留下…
展开
-
Android初级学习之实现页面滑动
学了一周左右的Android,就想做个项目来巩固所学到的知识并根据功能需求来强迫自己学点额外的知识点,始于视频,但不止于教程。这或许也是很好的学习途径。今天所要做的需求是实现向导页,然而,阴差阳错却学了实现tab,也可以理解为页面滑动。 今天看的教程是慕课网的《多种多样的App主界面Tab实现方法》,是群里的一个好友推荐的,有兴趣的可以去看看。而我今天只学了第一种方法来实现,也就是传统的Vie原创 2016-09-23 10:18:05 · 667 阅读 · 0 评论 -
Android高级学习之xUtils3源码解析
xUtils3简介1.xUtils 包含了很多实用的android工具. 2.xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响… 3.xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?) 4.xUtils3变化较多所以建立了新的项目不在旧版(原创 2017-03-08 10:51:05 · 307 阅读 · 0 评论 -
Android高级学习之RecylerView和ListView的区别
RecylerView高度自定义化的onClick事件,能够在viewHolder创建的时候为view设置监听器,通过view.setTag的方式,把dataList里面的值或者position传入view中绑定,再在监听器实现中,获取参数并回调相应的接口,并通过自定义的接口回传给外部的activity。layoutManager的灵活使用,支持水平线性滑动,以及瀑布流形式。ItemAn原创 2017-03-08 10:49:23 · 1051 阅读 · 0 评论 -
Android的线程和线程池
线程的角色 在Android系统中,除了Thread本身之外,可以充当线程的还有AsyncTask,IntentService,HandlerThread,但其本质仍然是线程.其中,AsyncTask底层实现是线程池,IntentService和HandlerThread则直接使用了线程.使用环境AsyncTask封装了Thread和Handler,主要用于子线程更新UI,但不适合用于非常耗时的任原创 2017-04-01 00:04:59 · 304 阅读 · 0 评论 -
android获取屏幕宽高与获取控件宽高
android获取屏幕宽高与获取控件宽高转载 2017-03-24 21:18:04 · 297 阅读 · 0 评论 -
BitMap的高效加载
BitMap的高效加载BitmapFactory类提供四种方法来实现图片资源的加载:decodeFile:从文件系统加载 decodeResource:从资源中加载 decodeStream:从输入流中加载 decodeByByteArray:从字节数组中加载 其中,decodeFile和decodeResource间接使用decodeStream来实现加载如何高效加载原创 2017-04-01 22:23:25 · 410 阅读 · 0 评论 -
自己实现一个ImageLoader
一般来说,一个优秀的ImageLoader应该具备:图片的同步加载,图片的异步加载,图片压缩,内存缓存,硬盘缓存,网络拉取等功能. 那么,我们现在就开始来一一实现这几种功能!图片压缩图片压缩主要通过BitmapFactory.Options来实现,步骤: 1.将BimapFactory.Options的inJustDecodeBounds参数设置为true并加载图片(只是解析图片) 2.从原创 2017-04-01 22:20:16 · 659 阅读 · 0 评论 -
Android学习之View的事件体系完全解析
本文尝试着从View的一些基本概念,view的滑动,以及令人头疼的滑动冲突等来解析一下View.什么是View 我们都知道Activity在Android中承担着可视化的功能,而显示的往往就是各种控件的组合,例如Button,TextView,甚至是复杂的ListVIew……而这些都是View.而我们所用的布局LinearLayout,RelativeLayout等就是一组View,也就是View原创 2017-04-03 21:07:24 · 465 阅读 · 0 评论 -
Android常见滑动冲突场景
Android中常见的滑动冲突主要分为三种: 1.外部滑动方向和内部滑动方向不一致 2.外部滑动方向和内部滑动方向一致 3.前两种的嵌套 既然滑动冲突都有既定的规律,那么解决滑动冲突也肯定有通用的方法.外部滑动方向和内部滑动方向不一致 在这种情形下,我们可以根据滑动距离(水平距离和垂直距离)来判断滑动方向,并且来决定是该由外部View来拦截还是由内部View来拦截,简单的来原创 2017-04-06 18:03:39 · 1371 阅读 · 0 评论 -
Fragment实战案例
对于Fragment,《Android编程权威指南》的作者极力推崇,坚持AUF(Always Use Fragment)原则,即总是使用Fragment。Fragment本身占用内存比Activity少很多,在流畅性,性能上具有很大的优势,尤其是在中低端手机上。此外,如果你的应用需要移植到平板上的话,那使用Fragment更是你的不二之选。 本文就是通过一个实战案例来解剖一下Fragment。原创 2017-04-19 19:13:12 · 1300 阅读 · 0 评论 -
Android高级学习之图片缓存
防止多图OOM的解决思路是LRU算法 LRU(Least Recently Used), 即近期最少使用算法. 使用缓存策略, 对网络上下载的图片等资源文件进行缓存, 当再次请求同一个资源url时, 首先从缓存中查找是否存在, 当不存在时再从网络上下载。采用缓存, 除了提高获取资源的速度, 也对减少使用用户手机上的流量有很好的作用. 核心思想是当缓存满时,会优先淘汰那些最少使用的缓存对象。采用原创 2017-03-08 10:50:10 · 350 阅读 · 0 评论 -
Android高级学习之性能优化
布局优化避免Overdrawoverdraw,过度绘制会浪费较多的Cpu和Gpu资源。Android系统在在开发者选项中提供了“Enable GPU Overdraw”工具,可以通过界面上的颜色来判断Overdraw的次数,不过由于项目只是在虚拟机上运行,所以项目中没有使用布局层次优化因为在Android系统中对View进行测量、布局,绘制时是通过对View的数量来进行遍历的,所以原创 2017-03-08 10:48:54 · 360 阅读 · 0 评论 -
android初级学习之Handler详解
一、为什么使用Handler 当启动应用程序时,android系统会启动一个主线程,也就是UI线程。UI线程主要负责事件的分发,它是不安全的。如果一个事件(下载、读取本地大文件等比较耗时的操作)响应超过5秒,那么它就会假死,进入强行关闭状态。故而,类似这种超时操作就需要在子线程中进行。那么问题又来了,子线程大多是不能更改UI的,那么当事件完成想在UI上做个显示都不行了。所以,Handler出现了。原创 2016-10-10 19:24:29 · 243 阅读 · 0 评论 -
Android初级学习之Intent的简单使用
今天学到Intent在不同的Activity中实现跳转时,还了解到Intent也可以在不同程序中跳转,觉得挺有意思的,就记录下来,聊以自乐。 翻阅多篇博文,发现Intent也是Android中开发不可或缺的。 Intent可以理解为意图的意思,相信大多数人也是这样理解的。对于Intent的作用,比较官方的说法是”来协助应用间的交互与通讯”。可以这样理解:Intent不仅可用于应用程序之间原创 2016-09-25 16:26:51 · 436 阅读 · 0 评论 -
android初级学习之应用目录结构
androi初级学习之应用目录结构看了几天mars的安卓视频教程,算是对安卓开发有了一个初步的了解,同时,也萌生一个想法:每天总结一下所学到的安卓开发新知识,并发一篇稍微有点技术涵量(相对之前的一无所知)的博客,记录自己的学习历程,激励一下自己,也勉励一下偶然看到我这篇文章的初学者。android应用目录结构新建一个demo项目,并截取目录结构图 src:搞过java的都知道这是存放源码的目录,原创 2016-09-22 10:45:53 · 341 阅读 · 0 评论 -
android初级学习之ViewPage进一步探索
之前使用过ViewPage来实现页面滑动,然而却仅是停留在会用的阶段,还是在慕课网上看完视频才敲出来的,并不真正了解其背后的原理。今天又再次使用到,就想真正理解ViewPager并真正意义上的会使用它。ViewPager ViewPager,顾名思义,就是一个负责翻页的View。实际上它也是ViewGroup的一个子类,包含多个View页。然而实际实际上我们使用时,往往需要一个PagerAdapt原创 2016-10-22 17:41:50 · 349 阅读 · 0 评论 -
android初级学习之ListView的使用
自认为,要掌握一个控件的使用就要清楚该控件的用作以及用法,然后才是深入细节中进行探讨。那么,我们为什么要使用ListView呢?ListView的作用 屏幕的尺寸是有限的,然而,当用户要阅览许多内容时,怎么办?总不能只加载一部分,然后剩下的就不了了之了吧。这时,ListView就派上用场了。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。这原创 2016-09-27 20:00:24 · 417 阅读 · 0 评论 -
ViewPager的setOnPageChangeListener方法详解
ViewPager的setOnPageChangeListener方法详解转载 2016-10-24 22:34:49 · 381 阅读 · 0 评论 -
Android总结篇系列:Android广播机制
Android总结篇系列:Android广播机制转载 2016-10-17 16:16:19 · 232 阅读 · 0 评论 -
android初级学习之深入了解View绘制流程(一)
View是android开发中必不可少的,之前也只是停留在简单使用状态上,如使用setContentView()设置布局呀,但背后原理还没深入了解。知其然而不知其所以然乃技术学习之大忌。趁有空,稍微整理一下,也稍微深究一下,并记录下来,聊以不时之需。LayoutInflater View的绘制首先得从LayoutInflater说起: 老样子,先应用再深究。 LayoutInflate原创 2016-11-09 13:44:44 · 325 阅读 · 0 评论 -
android初级学习之使用shape显示圆形
今天项目中有个需求:TextView和ImageView需要显示为圆形。于是乎,就百度了一下,原来用shape可以轻松解决。下面就简单来说以下如何使用: 其实也是相当于替换background属性的: 首先在drawable下新建一个round.xml文件:<?xml version="1.0" encoding="UTF-8"?><shape android:shape="oval"原创 2016-10-20 22:47:46 · 3612 阅读 · 0 评论 -
android初级学习之selector的使用
很多时候,我们点击一个控件时,希望该控件背景发生改变,这时就可以考虑selector的使用了。 使用其实也就是更改background属性: 先在drawable新建一个changebg.xml文件: <?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.原创 2016-10-20 23:10:50 · 253 阅读 · 0 评论 -
android初级学习之深入理解Context
Context看起来很熟悉,基本每次进行android开发时都会用到,但是,我们又是否真的理解呢?例如,一个简单的问题,一个应用程序中到底有几个Context对象?一个,还是两个,还是多个?好吧,我们开始我们的Context之旅!Contex的功能这个就实在是太多了,例如弹出Toast、启动Activity、启动Service、发送广播、操作数据库等等都需要用到Context。由于Context的原创 2016-11-21 21:46:26 · 272 阅读 · 0 评论 -
android初级学习之SlidingMenu的简单分析
如果做过有侧滑显示导航栏需求的朋友们,相信对SlidingMenu都不会陌生。SlidingMenu 是一个强大的侧边栏导航框架,它主要主有以下几个特点: (1) 侧边栏可以是一个 Fragment,包含任何 View (2) 使用简单方便,支持左滑和右滑等 (3) 自定义侧边栏显示动画 它的使用是比较简单的。无非是引包,写好显示文件,然后设置相关属性而已。这里介绍一下常用的属性设置方法原创 2016-11-26 21:40:59 · 329 阅读 · 0 评论 -
android初级学习之实现选择按钮
android中有四类切换型开关,它们分别是CheckBox,RadioButton,Switch, ToggleButton。查看开发文档,这四种类型的开关同继承于CompoundButton: 好吧,我们首先来看ToggleButton的使用。ToggleButton实现开关切换ToggleButton的使用十分简单,就相当于是普通控件的使用,只需要设置一下相关属性就可以了原创 2017-03-08 10:45:57 · 3115 阅读 · 0 评论 -
android初级学习之视图的绘制(自定义View的实现原理)
视图可绘制的元素总的来说,可绘制元素包含四个:View背景背景可是是一个颜色只,也可以是一张图片,甚至可以是任何drawable对象视图本身的内容如果是TextView,那么视图内容就是具体的文字;如果是是ImageView,那么视图内容就是具体的一张图片渐变边框设置渐变边框主要是为了让边框看起来有层次感,不过一般不需要滚动条仅是显示滚动的状态,原创 2017-03-08 10:46:53 · 543 阅读 · 0 评论 -
Activity生命周期场景解析
初识Activity活动是一种包含用户界面的组件,主要用于和用户进行交互。我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局界面,而这个界面就是提供给用户进行交互的。返回栈Android系统中是通过任务(Task)来管理活动的。一个任务就是一组放在栈里的活动的集合,因此这个栈也被称做返回栈(Back Stack)。栈是一...原创 2018-12-03 22:49:34 · 581 阅读 · 0 评论