- 博客(77)
- 收藏
- 关注
原创 Android颜色全解析
Android颜色全解析 颜色对照表:https://blog.youkuaiyun.com/lm_zp/article/details/51381355颜色表示方法 Android颜色由16进制表示,颜色范围为0~FFFFFF。 颜色值:#AARRGGBB。透明度(A,alpha);红色(R,red);绿色(G,green);蓝色(B,blue颜色值透明度百分比和十六进制对应关系//变化为...
2019-03-28 00:23:53
2057
原创 View自定义控件系列——获取View最新(实时)宽高
获取View最新宽高addOnGlobalLayoutListener 视图树的观察者,监听view的全局变化事件,包括layout,draw 应用场景,onCreate(),onResume()中控件未加载完全的情况下获取view的宽高等属性 注意:需要移除监听事件view.getViewTreeObserver().addOnGlobalLayoutListener(new V...
2019-03-24 23:25:34
732
原创 动画系列——LayoutAnimation与GridLayoutAnimation
LayoutAnimation与GridLayoutAnimationLayoutAnimation 对viewGroup及其子类添加进入统一动画的LayoutAnimation和针对grideView添加进入动画的gridLayoutAnimation使用示例 layoutAnimation属性只在ViewGroup及其子类创建时有效<!-- anim/ayout_anima...
2019-03-24 22:21:08
708
原创 Android自定义控件系列——View与内容作滑动或动画
View与内容作滑动或动画控件滑动View滑动的本质就是随着手指的运动不断地改变坐标。 当触摸事件传到View时,系统记下触摸点的坐标,手指移动时系统记下移动后的触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标,不断的重复这样的过程,从而实现滑动过程方法一:layout(),控制View的坐标private int lastX = 0;private int lastY = 0;...
2019-03-19 08:34:56
572
原创 Android动画系列——属性动画(Property动画)
动画系列——属性动画(Property动画)属性动画(Property动画)引入原因:补间动画功能只能覆盖移动,缩放,旋转,透明四种对view的操作,局限性大。只改变view的显示效果,不改变view的属性使用XML实现java类XML标签ValueAnimatoranimatorObjectAnimatorobjectAnimatorAnimatorS...
2019-03-18 08:53:06
740
原创 Android动画系列——帧动画(Frame动画)
动画系列——帧动画(Frame 动画) 一张一张的图片按照顺序和时间进行一帧一帧的播放。将图片资源作为背景图片,依次播放。用到的类:AnimationDrawable使用XML实现1 将资源图片导入到对应的 drawable-xxx 或drawable 目录中2 在其目录下,创建xml文件,根节点选择 animation-list<?xml version="1.0" enc...
2019-03-18 08:49:29
211
原创 Android动画系列——补间动画(Tween动画)
动画系列——补间动画(Tween动画)补间动画也叫渐变动画,对特定的对象做图像变换如平移、缩放、旋转、淡出/淡入等动画类型XML节点使用的java类透明alphaAlphaAnimation缩放scaleScaleAnimation移动translateTranslateAnimation旋转rotateRoateAnimation...
2019-03-18 08:47:30
327
原创 Android版本管理工具——GIT认识与使用
GIT下载与安装下载:下载msysGit_…exe安装:傻瓜式安装验证:开始菜单 → Git → Git Bash 如果弹出命令框,Git安装成功使用:指定git仓库配置(统一)弹出的命令框输入命令:git config --global user.name “tangheng”git config --global user.email &amp;amp;amp;amp;quot;tangheng@163.com&amp;amp;amp;amp;quot;
2019-02-25 23:35:22
4504
原创 Android常用工具汇总
常用工具汇总性能FlowUp-——性能跟踪收费:根据用户量收费作用:跟踪APP整体性能,深入分析关键性能数据,如FPS,内存,CPU,磁盘等。官网:https://flowup.io/Takt——追踪FPS作用:追踪APP的FPS下载:https://github.com/wasabeef/TaktAndroid Debug Database——数据库与SP调试作用:视图模式调...
2019-02-25 23:31:29
4806
原创 Android Intent全解析
IntentIntent 可以携带的数据类型八种基本数据类型boolean、byte、char、short、int、float、double、long 和String 以及这9 种数据类型的数组形式实现了Serializable 接口的对象实现了Android 的Parcelable 接口的对象以及其数组对象Activity使用Intent跳转显式Intent intent = ne...
2019-02-25 23:29:31
4400
原创 Android组件系列——Content Provider
Content Provider跨进程共享数据的标准方式与SharedPreferences存储中的全局可读可写操作模式不同的是,Content Provider可选择只对某一部分数据进行共享,从而保证数据的安全性ContentResolver不同于SQLiteDatabase,ContentResolver中的增删改查方法均不接收表名参数,而是使用一个Uri的参数代替,这个参数被称作内容...
2019-02-25 23:27:45
4024
原创 Android组件系列——Service
Service一种长生命周期的组件,不实现任何用户界面,一个没有界面的Activity长期在后台运行,执行不关乎界面的一些操作比如:网易新闻服务,每隔1 分钟去服务查看是否有最新新闻和Thread 有点相似,但是使用Thread 不安全,不严谨运行在主线程中,因此不能用它来做耗时的操作与Thread的区别Service运行在主线程,不能进行耗时操作Thread开启的子线程可以做好事操...
2019-02-25 23:25:52
4225
原创 Android组件系列——BroadCastReceiver
BroadCast进程间传输信息的机制,通过Intent携带书数据进行通信无序、有序广播内部实现机制1、自定义类继承BroadcastReceiver,并重写onReceiver()2、通过Binder机制向AMS(Activity Manager Service)进行注册3、通过Binder机制向AMS发送广播4、AMS查找符合条件(IntentFilter/Permission等)...
2019-02-25 23:23:20
4144
原创 Android组件系列——Activity
Activity概念android四大组件之一。Activity是独立平等的,用来处理用户操作。Android中的activity全部归属于task管理。task 是多个 activity 的集合,这些 activity 按照启动顺序排队存入一个栈(即“back stack”)。android默认会为每个App维持一个task来存放该app的所有activity,task的默认name为该ap...
2019-02-25 23:22:02
4417
原创 Android控件系列——RecyclerView和ListView对比
RecyclerView和ListView对比ViewHolder均是用来保存视图引用的类ListViewViewHolder需自己定义,可选择是否使用。如不使用,getView时会多次调用findViewById(),带来性能问题RecycleView必须自定义类使用RecycleView.ViewHolder类布局效果ListView只能垂直方向滑动,系统API无水平方向滑动...
2019-02-25 23:14:20
4529
原创 Android控件系列——Recyclerview
RecyclerView基础使用默认布局管理器:LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager均支持横向和纵向排列以及反向滑动。如横向滑动:mLayoutManager.setOrientation(GridLayoutManager.HORIZONTAL);//设置控件&amp;lt;android.suppo...
2019-02-25 23:13:15
4134
原创 Android控件系列——ListView
ListView/GridListView基本使用ListView lv = findViewById(R.id.lv);lv.setAdapter(new MyAdapter(this,strings));public class MyAdapter extends BaseAdapter { //自定义类继承BaseAdpter private Context context; p...
2019-02-25 23:11:36
4038
原创 Android控件系列——ProgressBar
ProgressBar提供两种进度显示模式:精确模式,模糊模式,效果见当前文件夹下精确模式:可看到精确的进度(右)模糊模式:相当于动画,用户看到到进度信息(左)XML属性style属性值Widget.ProgressBar.Horizontal 横向进度条,模式由 indeterminate 属性决定?android:attr/progressBarStyleHorizonta...
2019-02-25 23:08:51
6565
原创 Android控件系列——TextView
TextView基本方法getDefaultMovementmethod() //获取默认的箭头按键移动方式getText() //获得TextView对象的文本length() //获得TextView中的文本长度getEditableText() //获取文本可编辑对象,可对TextView文本进行操作,如在光标之后插入字符 getC...
2019-02-25 23:05:40
4613
原创 Android控件系列——Popupwindowod
popupwindow简单使用popupWindow = new PopupWindow(View, width, height, focusable);//参数:PopupWindow要显示的视图,宽,高,是否可点击//宽高可设置成ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENTpopupWin...
2019-02-25 22:59:16
4324
原创 Android控件系列——Dialog
DialogDialog AlertDialog TimePickerDialog DatePickerDialog ProgressDialog AppCompatDialog AlertDialog Presentation CharacterPickerDialogAlertDialogAlertDialog.Builder builder = new Bui...
2019-02-25 22:57:05
4519
原创 Android控件系列——WebView
WebView简介实现在app内展示网页并交互,同时也可在其中放入其他view(VebView标签可嵌套其他view标签),WebView组件继承自AbsoluteLayout。从Android4.4开始内核由WebKit变更为Chromium,提升性能和对HTML5,CSS3,JavaScript的支持WebView的行为定制:WebSettings,JavaScriptInterface...
2019-02-25 22:54:29
6865
原创 Android在线工具
在线工具http://tool.oschina.net/图片压缩https://tinypng.com/序列图绘制连接:http://online.visual-paradigm.com/使用教程:https://blog.youkuaiyun.com/chktsang/article/details/79698444流程图绘制http://www.edrawsoft.cn/病毒检测...
2019-02-25 22:46:00
5402
原创 Android自定义控件系列——轮播图案例
轮播图1 基础功能vp = (ViewPager) findViewById(R.id.vp); //获取ViewPager对象vp.setAdapter(new MyAdapter(images)); //设置适配器,传入数据vp.setCurrentItem(1); //设置初始化画当前页 public MyAdapter(List&amp;amp;amp;amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;amp;am
2019-02-24 23:56:23
4664
原创 Android自定义控件系列——自定义组合控件案例
自定义控件自定义组合控件1 创建自定义布局view_combination.xm,指定text的id值2 创建自定义属性attrs.xml中的resource节点下&amp;lt;declare-styleable name=&quot;MyView&quot;&amp;gt; //指定MyView为自定义属性名 //设置文本,format的类型见Andrid提示,注意大小写 &amp;lt;attr na
2019-02-24 23:54:03
6210
原创 Android自定义控件系列——贝塞尔曲线全解析
贝塞尔曲线贝塞尔曲线展示 一阶贝塞尔曲线 二阶贝塞尔曲线定义:DF:DE = AD:AB = BE:BC 三阶贝塞尔曲线 多阶贝塞尔曲线 三维贝塞尔曲线贝塞尔曲线公式P(t)=(1−t)3P1+3t(1−t)2P2+3t2(1−t)P3+t3P4P(t) = (1−t)^3P_1 + 3t(1-t)^2P_2 + 3t^2(1-t)P_3 + t^3P...
2019-02-24 23:52:35
4642
原创 Android自定义控件系列——PathMeasure类全解析
PathMeasure构造方法PathMeasure();PathMeasure(Path path, boolean forceClosed);//forceClosed 是否close这个path常用API//设置path,与构造方法配合使用setPath(Path path, boolean forceClosed);//测量Path的长度getLength();//判...
2019-02-24 23:48:12
4449
原创 Android自定义控件系列——Canvas类全解析
Canvas构造函数//通常与setBitmap()配合使用Canvas();Canvas(Bitmap bitmap); //Bitmap必须是mutable可变化的通用APIsetBitmap(Bitmap bitmap); //设置可变化的位图通常用在获取一张Bitmap后通过Canvas处理一下getDensity(); //获取与设置画布密度,默认为Bitmap的...
2019-02-24 23:46:51
4902
原创 Android自定义控件系列——Paint类全解析
Paint常量常量名作用ANTI_ALIAS_FLAG抗锯齿标志DITHER_FLAG防抖动标志EMBEDDED_BITMAP_TEXT_FLAG绘制标记,在绘制文本时使用位图字体。禁用此标志将阻止文本绘制操作在字体中使用嵌入式位图冲击,从而导致具有可缩放轮廓和位图冲突的字体仅绘制可缩放轮廓,并且仅使用位图冲击的字体无法绘制FAKE_BOLD_TEX...
2019-02-24 23:46:43
3400
原创 Android自定义控件系列——Path类全解析
Path构造方法public Path(); public Path(Path src);通用APIset(Path src); //构造或者设置一个Path对象moveTo(float x, float y); //路径绘制的起点,从点(x, y)开始进行绘制lineTo(float x, float y); //直线的结束点,又是下一次绘制直线路径的开始点rM...
2019-02-24 23:46:27
4602
原创 Android自定义控件系列——View的全解析
ViewView体系坐标系屏幕区域划分//获取屏幕宽高DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);int widthPixels = metrics.widthPixels;int heightPixels = m...
2019-02-24 13:57:32
5761
原创 Android动画全解析(持续更新)
动画动画分类Tween 动画、Frame 动画帧动画(Frame 动画)一张一张的图片按照顺序和时间进行一帧一帧的播放思路:将图片资源作为背景图片,依次播放。用到的类:AnimationDrawable使用XML实现1 将资源图片导入到对应的 drawable-xxx 或drawable 目录中2 在其目录下,创建xml文件,根节点选择 animation-list<?...
2019-02-24 13:47:57
5137
原创 Android热更新全认识
热更新应用场景刚发布的应用出现了比较严重的bug有一些小的功能想即时的推送给用户去使用热更新流程1、线上检测到严重的crash2、拉出bugfix分支并在分支上修复问题3、jenkins构建和补丁生成4、app通过推送或者主动拉取补丁文件5、将bugfix代码合到master分支上热更新原理 BaseDexClassLoader PathClassLoader Dex...
2019-02-24 13:44:51
6272
原创 Android架构设计模式
架构设计模式MVCModel 模型层,负责处理数据加载或者存储View 视图层,负责界面数据展示,与用户进行交互Controller 控制器层,负责逻辑业务处理优点耦合性低重用性高生命周期成本低部署快可维护性高有利软件工程化管理缺点无明确的定义不适合小,中型等应用程序增加系统结构和实现的复杂性视图与控制器间连接紧密视图对模型数据的访问效率低一般高级的界面工具...
2019-02-24 13:43:05
5446
1
原创 Android插件化、组件化总结
架构设计之插件化、组件化组件化方案1、module library 切换2、组件间跳转uri跳转3、组件间通讯 binder机制主工程(壳工程mudele) 不分配任何具体业务逻辑。用于使用组合业务组件、初始化配置和发布应用配置等组件(module/library) 实现具体业务逻辑,尽可能保证业务独立性。具体根据自己的项目需要来划分公共库(library) 公共使用的...
2019-02-24 13:41:02
6226
原创 Andrid概念——Window全认识(持续更新)
WindowWindowManagerService 位于 Framework 层的窗口管理服务,管理系统中的所有窗口窗口(Window):一块显示区域,在 Android 中就是绘制的画布。VIew为Window的实体,Window是一个抽象概念可独立完成对Window的操作, 作为系统级服务运行在一个单独的进程。因此,WindowManager 和 WindowManagerServ...
2019-02-24 13:38:17
4982
原创 Android系统源码目录
Android系统源码目录源码下载官网:http://androidxref.com/镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/百度网盘:http://pan.baidu.com/s/1ngsZs整体架构 编译后的源码目录会多增加一个out文件夹,用来存储编译产生的文件Android源码根目录描述abi...
2019-02-24 13:36:21
6244
2
原创 JNI 与 NDK
JNI 与 NDKJNI定义:Java Native Interface,即 Java本地接口作用: 使得Java 与 本地其他类型语言(如C、C++)交互,Java代码与C,C++语言代码相互调用注意:JNI是 Java 调用 Native 语言的一种特性JNI 是属于 Java 的,与 Android 无直接关系背景:Java 具备跨平台的特点,所以Java 与 本地代码交互...
2019-02-24 13:33:49
4978
原创 Binder机制详解
Binder机制 Android系统中进程间通讯(IPC)的一种方式,Android中ContentProvider、Intent、aidl都是基于Binder内存管理 Binder最大只能传1M的数据,因为Binder驱动只预留了一段1M大小的虚拟地址mmap中定义BINDER_VM_SIZE为1M,Binder数据需要跨进程传递,需要在内核上开辟空间,所以允许在Binder上传递的...
2019-02-24 13:30:33
8740
原创 Android插件化
Android插件化 减少安装包大小,实现app功能模块化动态扩展发展历程需解决三个问题插件中代码的加载和与主工程的互相调用插件中资源的加载和与主工程的互相访问四大组件生命周期的管理框架发展的三代第一代dynamic-load-apk:使用ProxyActivity静态代理技术由ProxyActivity去控制插件中PluginActivity的生命周期缺点:插件中的acti...
2019-02-24 13:24:22
4984
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人