Android开发
文章平均质量分 78
LBJFxd
一只爬向山顶的野生程序猿
展开
-
Android开发中Banner部分实现真正的无限轮播
如今在许多的App开发中,我们都会遇到这种需求,在某一个模块的最上方有一个banner,用来展示我们想要重点突出的内容。其中当用户滑动时(向左向右都可),他会切换,用户不切换时,每隔一段时间自动切换。在这里我们选择ViewPager来实现。Activity中的代码:public class MainActivity extends Activity {private ViewPager原创 2016-01-24 21:48:37 · 787 阅读 · 0 评论 -
android开发键盘状态监听
1.背景相信大家在自己的项目中都会遇到EditText输入的问题,自然而然随之产生的就是让人头痛的键盘问题了,之所以说让人头疼是因为需求不同,设计不同,我们所要做的处理也不同,加上Google爸爸并没有针对键盘状态的API,所以只能靠我们自己处理。小白最近遇到的问题是:当键盘弹出的的时候,将输入框移到距离屏幕最上方20像素的地方,键盘收起时复位,所以有两个问题:1.键盘弹出收起状态监听 2.将指定原创 2017-08-15 20:51:56 · 1872 阅读 · 1 评论 -
kotlin学习day11:扩展函数
想一想,当我们使用Java开发Android的时候有没有遇到过这种场景:假设我们需要给某个类添加一个通用方法的时候,是不是必须继承这个类,然后去自定义我们的方法。例如我们要给TextView添加一个设置text的方法,我们就必须:public class SuperTextView extends TextView { public SuperTextView(Context context)原创 2017-10-20 00:31:05 · 384 阅读 · 0 评论 -
kotlin学习day9: 为什么要使用kotlin
Kotlin 是一门把 Java 平台作为目标的新的编程语言。它简洁、安全、优雅而且专注于和 Java 代码间的互操作性。它几乎可以用于如今 Java 遍及的所有地方:服务器端开发、 Android 应用开发和更多其他的方面。 Kotlin 能够很好的与现有的 Java 库和框架并存。而且,它运行的性能不亚于 Java 。Kotlin-静态类型像 Java 那样, Kotin 是原创 2017-10-13 08:52:39 · 535 阅读 · 0 评论 -
Android Studio之Gradle文件解析1
使用Gradle来构建Android项目对Android开发者而言并不陌生,因为当我们使用Android Studio来进行项目开发时,就一直在使用这种构建方式。Gradle构建一个新的Android项目时,会生成几个重要的gradle文件,一个setting.gradle文件,两个build.gradle文件: 这些文件都有什么用呢?依次说明1.根目录下的settings.gradle文件set原创 2017-11-15 08:52:06 · 390 阅读 · 0 评论 -
android studio gradle依赖解析
Eclipse的依赖在AndroidStudio出现之前,使用Eclipse开发Android项目的时候,如果需要一个第三方的依赖库,我们必须找到该依赖,然后下载JAR文件并将其拷贝到项目,引用它。通常这些JAR文件在他们的名称中没有版本号,所以需要开发者手动添加JAR的版本,以便知道什么时候更新,同时还需要确保依赖库中存储了源代码管理系统,以便其他开发者在没有手动下载这些依赖库的时候,也可以使用基原创 2017-11-19 23:53:44 · 1406 阅读 · 0 评论 -
android动画知识总结
Android中的动画可以分为三种:View动画、帧动画、属性动画View动画通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,是一种渐进式动画,并且View动画支持自定义。帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,很显然,图片过大就会导致OOM属性动画通过动态的改变对象的属性从而达到动画效果自定义View动画需要继承Animation这个原创 2017-12-03 22:56:18 · 133 阅读 · 0 评论 -
android消息机制
Android消息机制主要指Handler的运行机制,Handler只是Android消息机制的上层接口,依赖于底层MessageQueue和Looper。MessageQueue:消息队列,内部存储了一组消息,以队列的形式对外提供插入和删除操作。虽然叫消息队列,但是它的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表的。Looper:循环器,由于MessageQueue只是一个原创 2017-12-03 23:07:04 · 150 阅读 · 0 评论 -
android中的线程和线程池
操作系统中线程是系统调度的最小单元同时线程也是一种受限的系统资源,线程不可能无限制产生,并且线程的创建和销毁都会有相应的开销,当系统中存在大量的线程时,系统会通过时间片轮训的方式调度每个线程,因此线程不可能做到绝对的并行,一个进程中不可能频繁的创建和销毁线程,这样做是不高效的,因此采用线程池的方式,线程池会缓存一定数量的线程,通过线程池就可以避免因为频繁创建和销毁线程所带来的系统开销。主线程是指进程原创 2017-12-03 23:13:14 · 283 阅读 · 0 评论 -
android中的bitmap的加载和cache
Android中目前比较常用的缓存策略是LruCache和DiskLruCache,其中LruCache常被用来做内存缓存,而DiskLruCache常被用作存储缓存。LruCache是Least Recently Used,即最近最少使用算法,这种算法的核心思想是:当缓存快满时,会淘汰近期最少使用的缓存目标。高效加载Bitmap的核心思想是采用BitmapFactory.Options来加载图片所原创 2017-12-03 23:16:35 · 259 阅读 · 0 评论 -
android开发view简单总结
1.View是Android中所有控件的基类,View是一种界面层的控件的一种抽象代表了一个控件。ViewGrouo继承与VIew,所以View本身就可以是单个控件也可以是多个控件组成的一组控件2.View位置描述的几个点:top.left.right.bottom,这几个值均是针对Vie原始位置的上左右下位置信息,即使View移动时,其值也不会发生变化,此时变化的是x和translationX,y原创 2017-12-03 23:22:01 · 243 阅读 · 0 评论 -
Activity启动模式总结
1.在standard启动模式下,A启动了B(标准模式),那么B会进入到A所在的任务栈中2.当使用非Activity的Context启动standard模式的Activity的时候会报错们因为standard模式的Activity默认会进入启动它的Activity的任务栈中,由于非Activity类型的Context并没有所谓的任务栈,所以被启动的Activity不知所去解决办法:为待启动的Acti原创 2017-11-26 20:50:36 · 280 阅读 · 0 评论 -
android架构设计—mvp模式封装
简介关于Android程序的构架, 当前比较成熟且使用最多的应该就是MVP架构了,当然还有其他的如:MVC和MVVM。MVC相对于较为落后,、耦合度太高、职责不明确,MVVM使用DataBind,普及性不如MVP,况且Google官方提供了Sample代码来展示MVP模式的用法。因此选择MVP架构毫无疑问。概念MVP即Model、View、PresenterView:负责视图部分展示、视图事件处理。原创 2018-01-21 14:10:52 · 10787 阅读 · 5 评论 -
彻底理解Android中的ThreadLocal
三、源码分析 1、构造方法public ThreadLocal() {}2、set方法public void set(T value) { //获取当前线程 Thread currentThread = Thread.currentThread(); //获取当前线程的Values对象 Values values = values(curren...原创 2018-07-09 10:05:50 · 2039 阅读 · 0 评论 -
Android签名打包、密钥库、密钥全面解析
前言Android要求所有的应用必须进行数字签名才可以发布,也就是我们平时所说的使用证书打包然后上传市场。这个签署的过程又包括创建和存储证书,使用不同证书签署不同的构建配置,及自动签署过程。重要的角色:证书和密钥库 公钥证书又称为数字证书和身份证书包含公钥/私钥对的公钥,以及可以标识密钥所有者的一些其他元素,例如名称和位置,证书持有者持有对应的私钥在签署工具签署我们的APP时,会自动将我们的公钥证原创 2017-08-21 21:35:34 · 18754 阅读 · 0 评论 -
android四大组件-service全面解析一
Service简介Service即我们平时所说的服务,Android开发中的四大组件之一,运行于后台,执行一些耗时操作,不与用户直接进行交互。服务可以被其他组件启动,甚至用户切换到其他应用,还能在后台运行。此外,应用程序组件还能绑定服务,并与服务进行交互,甚至进行进程间通信(IPC)。Service的两种状态Started:如果一个应用程序组件使用startService来启动服务,则该服务处于S原创 2017-08-24 21:51:57 · 252 阅读 · 0 评论 -
如何实现MVP架构
MVP即Model—View—Presenter,从经典的设计模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。MVP架构的重点在于面向接口编程,通过接口将单一职能的Model 和 View联系起来 说起来容易做起来难,如何才能使用一个MVP架构呢? 1、Model对外暴露的接口:interface IG原创 2016-08-17 23:37:58 · 614 阅读 · 0 评论 -
ImageView剖析一(从源码的角度理解ImageView)
ImageView是Android开发中使用非常最频繁的控件之一(另一个使用频繁的控件是TextView),可是我们真的了解它吗?还是我们只是使用它可以满足目前的需求?如果不知道它的工作原理,我们如何能最大程度的合理使用它呢?带着这个问题我们很有必要来剖析它: 先来看看这个类的位置:android.widget.ImageView,由源码可知,继承自View:ImageView extends V原创 2017-03-06 14:54:42 · 484 阅读 · 0 评论 -
ImageView剖析二—(示例详解ImageView属性的使用)
前面我们通过阅读ImageView的源码对ImageView和它的属性有了更深的认识,这一次我们通过实际应用 来进一步理解他们: 首先我们找一张图(两种尺寸750*1334和1242*2208)放到对应(相近)的文件夹下面,mipamap各文件夹对应 的手机分辨率: ldpi 320*240 mdpi 480*320 hdpi 800*480 xhdpi 1280*720 xxhdp原创 2017-03-06 21:27:21 · 905 阅读 · 0 评论 -
Android着色器tint相关剖析
tint一个很陌生,甚至以前都不知道的东西,从它的字面意思来讲呢是色彩、着色的意思。他其实时Google官方在Material Design中一个很重要的东西,搭配background一起使用。如果你平时细心或者最佳使用 过EditText的话,你会发现,EditText下面的指示器颜色一直与你颜色资源文件中的colorAccent对应的值一样(感兴趣的朋友可以自己尝试修改),当然如果你不想去改变原创 2017-03-07 14:50:37 · 616 阅读 · 0 评论 -
Windows下配置Git环境并Clone工程
作为一个开发人员,当我们每次在一家新公司入职的时候,免不了开发环境的配置,每次都要去找一大堆软件下载,然后安装,想想也是麻烦。我是一名Android开发者,故现将此次配置Android开发环境的过程记录,安装软件存储到云盘,希望可以为大家提供帮助。1.AndroidStuio 下载AndroidStudio:http://www.android-studio.org,官网地址,大家可以直接下载带S原创 2017-04-06 19:37:45 · 21083 阅读 · 0 评论 -
androidstudio配置lambda表达式
Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。原创 2017-05-19 15:24:59 · 308 阅读 · 0 评论 -
自定义闪屏页广告倒计时view
如今APP越来越多,我们每天所使用的的软件也越来越多,可是在我们不付费的情况下,App制造商如何变现,实现收入甚至是盈利呢?答案就是在我们打开软件所必须经过的地方穿插广告,当然为了顾及用户的感受,一般都会以倒计时的形式展示给用户,用户可以选择跳过.可能是因为自己的强迫症,总想着是怎么做的,自己就尝试了一下,分享给大家的同时,顺便加深自己的理解.效果如图:原创 2017-05-19 20:53:49 · 994 阅读 · 2 评论 -
kotlin学习day2:类
类定义Kotlin中的类遵循一个简单的结构,如果你需要定义一个类,使用class关键字就可以了.class User { var email: String? = null var name: String? = null}当然若是一个空类,可以直接省略大括号class User {}构造方法Kotlin中的构造方法可以分为主要构造方法和二级构造方法,主要构造方法作为类声明的一部分。构原创 2017-06-01 12:10:48 · 210 阅读 · 0 评论 -
recyclerview中item可见位置研究
RecyclerView可见位置findFirstCompletelyVisibleItemPosition和findLastCompletelyVisibleItemPosition研究原创 2017-06-17 12:37:51 · 15226 阅读 · 1 评论 -
Android设置Dialog的透明度
在values下面设置自定义的Dialog的style <style name="BottomDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@原创 2017-06-09 14:02:47 · 4196 阅读 · 0 评论 -
textview字符之间的间距(letterspacing)
最近在做共享单车模块的时候,遇见一个UI上的小需求,使用letterspacing设置了TextView字符之间的间距原创 2017-06-22 19:53:50 · 10111 阅读 · 1 评论 -
android6.0权限解析
Android 6.0(API 级别 23)除了提供诸多新特性和功能外,还对系统和 API行为做出了各种变更:运行时权限、低电耗模式和应用待机模式、通知、音频管理器变更等。本文就运行时权限部分对自己在项目中的使用和遇到的问题做一些总结,希望对大家有所帮助。传送门(Android6.0的一些改变): https://developer.android.com/about/versions/mars原创 2017-08-01 19:29:08 · 451 阅读 · 0 评论 -
android开发二维码扫描
最近项目开发中,遇到了二维码的问题!于是就去Google,搜索结果提及最多的就是ZXing了!当然这也是Google推荐的! ZXingGithub地址:https://code.google.com/p/zxing/ 但是ZXing存在的问题也很明显:包太大,识别速度太慢,复杂的样式难以修改因此一些在ZXing基础上二次开发的库就出现了,其中比较著名的barcodescanner:https:原创 2017-08-02 19:40:57 · 11943 阅读 · 1 评论 -
Android-ANR总结原理分析
1、概述 ANR即Application Not Responding(应用程序无响应),一般在ANR的时候会弹出一个应用无响应对话框,同时会候产生一个日志文件trace.txt,位于/data/anr/文件夹下面,trace文件是Android Davik虚拟机在收到异常终止信号时产生的,最常见的一个触发条件就是Android应用中产生了FC(force close)。由于该文件的产生是在DV...原创 2018-08-19 19:28:41 · 9690 阅读 · 1 评论