SpringQi

你们都别学了,我跟不上。

ButterKnife的基本使用和实现原理

一.基本使用 1.在Project的build.gradle中添加如下配置 buildscript { repositories { mavenCentral() } dependencies { //添加插件 classpath 'com.ja...

2019-05-22 14:53:51

阅读数 3

评论数 0

EventBus的使用与实现原理

2019-05-21 00:39:25

阅读数 7

评论数 0

android中图片滤镜效果

对图像进行一定的过滤处理,颜色值时32位的int值,ARGB :A—Alpha值,RGB—颜色值 1、Alpha滤镜处理 MaskFilter类进行处理 BlurMaskFilter–用来绘制模糊阴影 EmbossMaskFilter – 用来实现浮雕效果 2、颜色RGB的滤镜处理 1...

2019-04-20 22:49:44

阅读数 17

评论数 0

android中Xfermode的使用

通过使用Xfermode将绘制的图形的像素和Canvas上对应位置的像素按照一定的规则进行混合,形成新的像素,再更新到Canvas中形成最终的图形。 我们一个像素的颜色都是由四个分量组成,即ARGB,A表示的是我们Alpha值,RGB表示的是颜色 S表示的是源像素,源像素的值表示[Sa,Sc]...

2019-04-20 22:09:20

阅读数 9

评论数 0

Android shader相关用法实例

Shader —着色器,Canvas的drawXXXX这个方法是画具体的形状,画笔的shader定义的就是图形的着色和外观 (一)BitmapShader–位图图像渲染,用BitMap对绘制的图形进行渲染着色,简单来说是用图片对图形进行贴图 例如:圆形头像,放大镜效果 (二)LinearG...

2019-04-20 20:07:22

阅读数 25

评论数 0

Scrollview嵌套Listview显示一行问题解析

从源码的角度分析Scrollview嵌套Listview显示一行问题,主要关注ScrollView和ListView的Measure过程, ScrollView的OnMeasure()方法 @Override protected void onMeasure(int widthMea...

2019-03-10 16:02:02

阅读数 42

评论数 0

从setContentView开始,了解view的加载过程

从setContentView(R.layout.activity_main);为入口分析View的UI绘制过程 public class MainActivity extends Activity { @Override protected void onCreate(Bu...

2019-03-09 13:32:44

阅读数 24

评论数 0

C语言的初步学习理解

基本数据类型 printf(); scanf(); 通过vs查看内存地址 数组定义 C语言数组在声明的时候就必须确定大小和基本类型 const 创建一个大的内存数据测试 数组存储在stack上 stack大小是有限的 ,系统自动释放内存;动态申请的内存在堆里,需要手动释放 动态申...

2018-09-07 12:13:13

阅读数 113

评论数 0

android中网页打开APP简单使用

通过用手机的浏览器访问一个网页,点击网页中的一个链接来启动APP,并将数据传递给APP 使用自定义的URI scheme实现跳转,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。 scheme://host:port?...

2018-08-01 14:46:09

阅读数 278

评论数 0

手机系统广播监听和启动第三方程序应用

(一)需求描述: 公司马上要实行钉钉考勤,并且只有连接到公司wifi才能进行打卡,可是我公司在30楼,就算你现在楼下排队等电梯还是不能打卡,还是避免不了迟到真是坑爹;我发现我每次打开钉钉它会自动帮我极速打卡,于是我脑子浮现出一种想法,我每天早上在上班时间之前启动一次钉钉不就可以...

2018-07-27 15:26:31

阅读数 958

评论数 0

android倒计时功能实现

最近项目要求做一个倒计时功能,进入答题界面前开始弹框倒计时3,2,1,倒计时完成弹框消失之后请求数据,答题计时开始10,9,8…3,2,1。 倒计时一直都用CountDownTimer,但是在界面展示进度和播放声音的时候总是有一些误差,开始计时的时候太快了以及执行onFinish()方法延迟,于...

2018-07-09 16:59:39

阅读数 512

评论数 0

Activity中输入框EditText被键盘遮挡问题

在项目开发过程中,一般app都有意见反馈这样的功能,布局中有很多文本框,布局底部存在一个提交按钮;用户在输入文本的时候,输入框经常被键盘遮挡,不能与键盘显示适配,很是头疼,我在网上找了很多方法,最后总结了一下,可以很好的解决这个问题。 解决思路:当键盘显示的时候我们发现布局被键盘遮挡了一部分,这...

2018-07-09 14:28:40

阅读数 111

评论数 0

Android Lifecycle相关

Lifecycle是什么 Lifecycle是Android Architecture Components 的一个组件,用于将系统组件(Activity、Fragment等等)的生命周期分离到 Lifecycle 类,Lifecycle 允许其他类作为观察者,观察组件生命周期的变化。 Lif...

2018-05-31 14:51:15

阅读数 163

评论数 0

TextView文字居中显示

项目中经常出现一种情况,当标题是一行的时候要水平居中显示,标题超过一行的时候需要左对齐显示;我们需要获取文字的显示行数来动态控制TextView的Gravity属性。 如果实在列表中使用则使用这种方式获取 tvTitle.getViewTreeObserver().addOnPreDrawLi...

2018-05-28 11:37:27

阅读数 530

评论数 0

View的绘制流程

View的绘制流程主要是指measure(测量)、layout(布局)、draw(绘制)三大流程,其中measure是测量控件的宽高,layout是确定view的布局left,top,right,bottom四个点的坐标从而确定它的最终宽高和摆放位置,draw是将view绘制在屏幕上。 View...

2018-02-01 15:49:07

阅读数 71

评论数 0

Activity如何将布局文件添加Windows窗口

一.首先了解几个概念 1.Window和PhoneWindow 一个顶级窗口查看和行为的一个抽象基类。这个类的实例作为一个顶级View添加到Window Manager。它提供了一套标准的UI方法,比如添加背景,标题等等。当你需要用到Window的时候,你应该使用它的唯一实现类PhoneWin...

2018-01-28 22:35:44

阅读数 228

评论数 0

雷达扫描效果SweepGradient的使用

实现效果如图: 实现原理: 原理很简单主要通过SweepGradient对圆进行扫描渐变效果,注意渐变颜色要从不透明到透明,通过不断旋转画布来实现扫描效果,注意这里画布原点在(0,0)点需要将其平移到控件的中心位置,不然会以(0,0)这个点进行旋转 代码如下:public class R...

2017-05-31 16:42:09

阅读数 1566

评论数 0

自定义圆形进度条

实现效果 实现思路: 1.绘制背景圆形 2.绘制中间文字进度,需要计算文字绘制的起点,保证文字在控件的中心,这里用到了measureText()方法对文字宽度进行测量,文字绘制是从基线开始绘制,所以要通过FontMetrics来计算文字文字y坐标上的位置才能放在中间显示(具体计算...

2017-05-27 16:19:28

阅读数 383

评论数 0

Paint基本用法

Paint 基本使用 1.1 负责设置获取图形绘制、路径相关的 1.setStyle(Paint.Style style) 设置画笔样式,取值有 Paint.Style.FILL :填充内部 Paint.Style.FILL_AND_STROKE :填充内部和描边 Paint.Style...

2017-05-26 17:48:37

阅读数 496

评论数 0

自定义瀑布流控件WaterfallFlowLayout

效果如下图所示: 实现效果:每个子项的宽度相同高度可能不同的布局 实现思路: 1.由于项宽度相同,则高度需要根据图片比例进行计算得出 2.用一个数组来存储每一列的总高度,将子控件添加到总高度最小的那一列的后面 3.通过onMeasure()方法计算出控件的高度,控件的高度为所有列高中...

2017-05-26 17:10:11

阅读数 433

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭