Android
文章平均质量分 69
幽蓝丶流月
种下一棵树的最好时间是十年前,其次是现在。愿我们在满是荆棘的路上,披荆斩棘,砥砺前行~
展开
-
AlertDialog常用创建方法
在开发中有时侯需要提示用户一些信息,或者选择设置一些东西,这个时候就需要提示框组件了,好在Android有原生的AlertDialog,用起来非常方便,下面是我整理的常用的各种提示框常用方法。先来一张动图镇场子:基础方法:public Builder setTitle(@StringRes int titleId)public Builder setTitle(CharSe...原创 2018-10-04 15:48:39 · 2235 阅读 · 0 评论 -
Fragment总结(二)
四、Fragment与Activity通信1.在Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作2.Handler、EventBuspublic class MainActivity extends FragmentActivity{ //声明一个Handler public Handler mHandler ...原创 2019-04-07 20:50:27 · 547 阅读 · 0 评论 -
消息机制总结
因为android的UI线程不是线程安全的,所以更新视图只能在主线程更新,那么如果我的子线程想要更新UI该怎么办呢?这就是 Handler出现的原因了,虽然我们通常将Handler用在子线程需要更新UI的场景下,也可以用来传递消息。一、角色分析1、Handler:处理器,负责的内容是消息的发送和具体处理流程,一般使用时由开发者重写handleMessage函数,根据自定义的不同messag...原创 2019-04-08 11:40:19 · 2041 阅读 · 0 评论 -
事件分发总结
一、基础知识1.分发对象事件:Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象2.事件主要发生的Touch事件大致分为以下四种: MotionEvent.ACTION_DOWN:按下事件(所有事件的开始) MotionEvent.ACTION_MOVE:滑动事件 MotionEvent.ACTION_C...原创 2019-04-08 17:16:05 · 2331 阅读 · 0 评论 -
滑动冲突解决方式总结
一、冲突类型滑动冲突分为三种类型,第一类是外部和内部滑动方向不一致,第二类是外部和内部滑动方向一致,第三类是前两种嵌套的模式。处理这三种类型的规则分为两类,对于第一种类型,我们可以根据滑动方向来处理,符合处理方向的分配给对应的控件;对于2、3种类型,必须根据业务上的区别来处理,某种状态的处理事件分发给对应的控件来处理。对于滑动方向的判别通常使用以下方式,使用终点坐标和起点坐标,计...原创 2019-04-08 18:49:14 · 3181 阅读 · 2 评论 -
AsyncTask总结
AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。一、简介1.AsyncTask的泛型参数public abstract class AsyncTask<Params, Progress, Result>其中,三个...原创 2019-04-09 10:54:54 · 270 阅读 · 0 评论 -
HandlerThread总结
在Android系统中,执行耗时操作必须使用子线程来执行,执行完线程以后线程便会自动销毁。但是如果如果我们有很多分步的耗时操作,如果我们不断的创建新的线程执行,不断销毁线程便会消耗很多的性能,那么该怎么办呢?android给我们提供了两个方法,一个就是使用本篇文章讲的HandlerThread,另一个便是使用线程池管理线程。一、简单使用1.创建实例对象//参数表示线程名称Handl...原创 2019-04-09 16:49:14 · 853 阅读 · 0 评论 -
IntentService总结
我们平常写程序时经常会涉及到下载或者播放音乐等耗时操作,你可能会使用Service+Thread的方式解决,但是这样比较麻烦,如果你要串行执行多个耗时操作还要使用线程池,其实Google早就帮我们封装好了一个框架——IntentService一、简单使用Client端public class ClientActivity extends AppCompatActivity { ...原创 2019-04-09 18:23:52 · 222 阅读 · 0 评论 -
Activity、Window、DecorView、ViewRootImpl之间的关系
我们通常写Activity的时候在onCreate里面都会写上setContentView()这一步,该方法会将你指定的布局文件加载并显示到屏幕中,在其中会经历一系列操作,其中也就涉及到了Activity,Window,DecorView,ViewRootImpl,今天就让我们借助这个方法来看看这些对象之间的关系。如果你在5.0之前就开始学习android了,那你会发现一个Activity的改...原创 2019-04-20 12:17:42 · 968 阅读 · 0 评论 -
View的onMeasure()、onLayout()、onDraw()总结
自定义View是android开发中常有的一项工作,要想自定义View,你就必须熟练掌握View的测量、布局及绘制,了解其原理并会使用。View视图绘制需要搞清楚两个问题,一个是从哪里开始绘制,一个是怎么绘制?先说从哪里开始绘制的问题:我们平常在使用Activity的时候,都会调用setContentView来设置布局文件,没错,视图绘制就是从这个方法开始的;再来说说怎么绘制的:在...原创 2019-05-30 10:14:00 · 5598 阅读 · 0 评论 -
Binder机制总结
在android中进行跨进程通信通常有以下几种方式:使用Intent 使用文件共享 使用Messenger 使用AIDL 使用ContentProvider其中Intent中可以携带Bundle,而Bundle实现了Parcelable接口,所以可以在不同的进程间进行传输。文件共享就是读写文件,比如常用的SharedPreferences就是以XML来存储的文件。而Messenger...原创 2019-06-03 10:04:39 · 3194 阅读 · 0 评论 -
Bitmap总结
相信大家在平时的android开发中肯定用过Bitmap,而且用的还不少,那么你对它有足够的了解吗?你的使用高效吗?对于超大图片是如何处理的呢?下面就让我们一起来从基础学习一下Bitmap。一、Bitmap是什么?位图(Bitmap),又称栅格图或点阵图,是使用像素阵列来表示的图像。位图(Bitmap)也可指: 一种数据结构,代表了有限域中的稠集,每一个元素至少出现一次,没有其他...原创 2019-06-10 14:49:03 · 812 阅读 · 0 评论 -
Fragment总结(一)
我们日常开发中经常会使用到fragment,通常会放置在主页面上,方便切换展示信息。它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的Fragment。一、生命周期第一张图展示了fragment的生命周期,第二章图展示了 Activity 与 Fragment 生命周期的对比Fragment比Activity多了几个生命周期...原创 2019-04-07 19:48:00 · 580 阅读 · 0 评论 -
BroadcastReceiver总结
BroadcastReceiver属于Android四大组件之一可用于监听应用发出的广播消息,并做出相应应用场景 :不同组件之间通信(包括应用内 / 不同应用之间) 与Android系统在特定情况下的通信 如当电话呼入时、网络可用时 多线程通信一、实现原理使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型。 广播接收者 通过Binder机制在...原创 2019-04-07 16:28:00 · 381 阅读 · 0 评论 -
AlertDialog源码浅析
AlertDialog的构造方法一共有4种,分别是:protected AlertDialog(Context context)创建一个默认配置的AlertDialog对象protected AlertDialog(Context context, boolean cancelable, OnCancelListener cancelListener)创建一个AlertDial...原创 2018-10-04 17:12:48 · 1187 阅读 · 0 评论 -
Android 补间动画
补间动画使用很简单,几行代码便能实现效果,上图上代码:xml很简单,不用说,先给每个按钮加上点击监听 findViewById(R.id.rotateBtn).setOnClickListener(new RotateButtonListener()); findViewById(R.id.rotate3DBtn).setOnClickListener(new Rot...原创 2018-10-05 16:03:46 · 292 阅读 · 0 评论 -
Android 属性动画(一)
属性动画是在 Android 3.0后才提供的一种全新动画模式,那么为什么要提供属性动画呢?或者说属性动画的优势在哪里呢?帧动画:由于逐帧动画的帧序列内容不一样,不仅增加制作负担而且最终输出的文件量也很大。补间动画:1.只能够作用在视图View上,即只可以对一个Button、TextView、甚至是LinearLayout、或者其它继承自View的组件进行动画操作,但无法对非Vie...原创 2018-10-06 19:43:18 · 1234 阅读 · 0 评论 -
Android 属性动画(二)
仔细想了一下,发现之前写的东西有很多漏了,改又不好改,只好在这里另写一篇补充了之前讲到ObjectAnimator但是没有说xml设置方法,在这里提一下<?xml version="1.0" encoding="utf-8"?><objectAnimator xmlns:android="http://schemas.android.com/apk/res/a...原创 2018-10-06 22:03:39 · 1149 阅读 · 0 评论 -
Android 属性动画(三)
android里面内置了简便的动画创建方式ViewPropertyAnimatorprivate class VPAnimatorButtonListener implements View.OnClickListener { @Override public void onClick(View v) { v.animate().set...原创 2018-10-06 22:25:31 · 1127 阅读 · 0 评论 -
Android 逐帧动画
逐帧动画是在时间帧上逐帧绘制帧内容,由于是一帧一帧的画,所以逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容。因为使用简便,所以开发中也经常使用逐帧动画和其它动画一样有两种设置方式<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:onesh...原创 2018-10-10 15:58:16 · 183 阅读 · 0 评论 -
Android 插值器
我们知道属性动画控制动画执行的类有两个核心类,一个是插值器,一个是估值器插值器决定改变趋势,也就是动画执行的快慢估值器决定具体的数值,比如具体移动到哪个位置,旋转到什么角度我们今天来说说插值器,Android系统内置了很多种差值器,基本可以满足平时的需求,但是有些时候我们需要一些特殊的动画,这时候就需要自定义插值器了 Android系统内置插值器 JAVA类 资源ID...原创 2018-10-10 21:50:43 · 858 阅读 · 0 评论 -
Android 数据库Realm入门
之前使用本地数据库都是用sqllite的,偶尔用一下LitePal,听人说Realm多么多么好使,但是我一直都没有去学习,今天有空去瞅了瞅,果然很不错。它有以下几种特点:1.易用:Ream 不是在SQLite基础上的ORM,它有自己的数据查询引擎。并且十分容易使用。2.快速:由于它是完全重新开始开发的数据库实现,所以它比任何的ORM速度都快很多,甚至比SLite速度都要快。3.跨平台:...原创 2018-11-02 14:49:39 · 1015 阅读 · 0 评论 -
LruCache和DiskCache总结
日常我们写程序的时候经常会使用到网络的图片,如果我们每次都去网上加载,那么性能难免会差一些,并且网络情况并不是总是 那么好,那么这时候我们就需要使用缓存了,我们学习android都知道图片的三级缓存,分别是内存缓存,硬盘缓存,网络缓存。它的大体流程是这样的,给定一个网址,加载一张图片如果内存缓存中存在,那就取出来,放上去,如果没有就找硬盘缓存 如果硬盘缓存中存在,那就取出来,放上去,并添...原创 2019-04-10 11:38:53 · 881 阅读 · 0 评论 -
Service总结
一、Service种类按运行地点分类:本地服务:运行在主进程中 远程服务:运行在独立的进程中按运行类型分类:前台服务:会有通知栏显示 后台服务:默认的服务,没有通知栏显示按启动方式分类:startService启动:停止使用stopService bindService启动:停止使用unbindService 使用startService和bindService启动:同...原创 2019-04-06 17:24:28 · 615 阅读 · 0 评论 -
Activity总结
一、Activity的生命周期activity应该是我们初学android就接触的,而它的生命周期更是重中之重,掌握activity的生命周期也是学好android的基础这张图片可谓是非常经典,应该学习android的人都见过,下面讲一一讲解各个方法:(1) onCreate():在activity创建时会被调用,通常会在其中加载布局,初始化控件。(2) onRestart()...原创 2019-04-01 21:53:04 · 447 阅读 · 0 评论 -
Android OpenGl学习(一)
最近由于项目需要,所以开始学习OpenGL,网络上的东西零零散散,所以就想写一系列博客来记录学习OpenGL。一、简介首先我们要对其有一个简单的认识什么是OpenGL?官方描述:OpenGL是一个跨平台的图形API,用于指定3D图形处理硬件中的标准软件接口。OpenGL的优势?OpenGl是用来做图像处理的,那我们为什么不使用Canvas呢?费劲学这个干嘛?答案很简单,...原创 2019-07-29 17:42:49 · 1414 阅读 · 4 评论