- 博客(31)
- 资源 (6)
- 收藏
- 关注
原创 android 自定义控件之QQ气泡
本篇文章主要是一个对贝塞尔曲线以及Path的一个应用,仿照QQ做了一个气泡的效果,效果如下: 首先实现这个效果的主要步骤(1)绘制出QQ气泡静止时候的样式(2)绘制出当手指拖动时候相连接的样式(3)超过一定距离气泡炸裂的样式下面进行详细的讲解,首先第一步我们通过Canvas.drawCircle()以及drawText()方法绘制出气泡和气泡上的文字 can...
2018-10-23 15:11:21 808
原创 android UI之Path
Path作为UI绘制的重要的一个类,在官方文档上对于的介绍如下: Path封装了由直线段,二次曲线和三次曲线组成的复合几何路径,它可以用canvas.drawPath()进行绘制,填充,描画,或者可以用于剪切或者绘制路径上的文字。 下面关于它常见的API进行一个简单的记录:方法 讲解 lineTo(float x, float y) 绘制直线,连接上...
2018-10-22 16:27:49 643
原创 androidUI之贝塞尔曲线
贝塞尔曲线是一种通过很少的控制点能够生成复杂的平滑的曲线,最早是通过一位法国工程师广泛宣传,用来辅助汽车车体的工业设计。目前除了工业领域,在计算机图形学领域,尤其矢量图像中。 其本质是一种算法,通过这种算法我们可以绘制出其中曲线,贝塞尔曲线分为一阶贝塞尔曲线和多阶贝塞尔曲线。 一阶贝塞尔曲线-一条直线,共有一个起始点和终点没有控制点 二阶贝塞尔曲线,一个...
2018-10-18 21:02:30 314
原创 UI之测量原理
上一篇文章UI之Activity启动流程介绍了Activity从启动到屏幕可见的流程,Activity是通过发送Handle消息反射创建除了Activity,并调用Activity的各个生命周期,在onCreate中加载了系统原始View-decorView,并解析了自己布局的xml保存至LayoutParams中,在handleResumeActivity中就开始了具体的UI绘制流程,最终将...
2018-10-12 18:10:49 421
原创 UI之Activity启动流程
上一篇文章自定义UI-1UI的绘制原理之setContentView 主要介绍了我们在setContentView的时候系统主要帮我们做了两件事,一是:加载一个DecorView作为最底层的View,二是解析我们的布局Xml。那么到底系统是如何将我们自己的布局放置于DecorView中并显示在屏幕上的呢。那么我们可以从startActivity开始我们查看下Activity启动系统帮我们做...
2018-10-09 18:23:09 292
原创 UI之setContentView
在日常的开发过程中我们知道通过setContentView()就能将我们自己的布局加载在屏幕之上,今天我们的目的是通过源码来分析setContentView中到底是通过何种方式将我们的UI显示出来的。 通过源码分析setContentView实际的实现是进入到了Window的实现类PhoneWindow.setContentView(): @Override pu...
2018-10-08 11:57:48 1126
原创 android 自定义属性
在日常的开发工作中,我们常常需要自定义View,当然这篇文章不是用来记录自定义View的,而是用来记录自定义attribute的,这也属于android开发的基础部分,在这里只是做个简单记录,下面开始自定义属性的四部曲第一部:定义属性 定义属性的时候有两个关键标签和一个关键属性,他们是:<declare-styleable> 、<attr>以及format属性...
2018-07-29 16:04:42 296
原创 Http之Content-type
content-type 也叫MIME类型,是用来描述请求中媒体类型消息,定义于消息头中。常见的媒体类型有如下:text/html:html格式text/xml:xml格式text/plain:纯文本格式image/gif:gif:图片格式image/jpeg:jpg:图片格式image/png:png:图片格式application/xml:xml数据格式application/json: js...
2018-07-15 10:03:02 1782
原创 android OKHttp之日志拦截
OkHttp的日志拦截通过HttpLoggingInterceptor对象进行拦截,该对象并不存在OkHttp包中,需要单独引用logging-interceptor包。compile 'com.squareup.okhttp3:logging-interceptor:3.6.0' 创建 HttpLoggingInterceptor对象,进行日志打印HttpLoggingInterce...
2018-06-28 21:01:13 2038
原创 android 组件化和模块化开发模式切换
一.名词解释 模块化:模块是APP的组成部分,所有的模块组装起来便是一个完整的APP 组件化:使模块能够单独运行为组件化二.模块化与组件化的差别 (1) 类型不同 模块:com.android.libray 组件:com.android.application (2)有无applicationId 模块:无 组件:有 (3)有无启动页 模块:...
2018-06-28 20:37:29 1093
翻译 android UI之RecyclerView
本篇文章是在使用RecyclerView的过程中对官方文档的翻译,由于英语水平的局限可能有的表述不太准确,后续会更新。 原文地址RecyclerView 总体来说RecyclerView是ListView的优化升级版.RecycleView中重要的组成部分包括:LayoutManager,RecycleView.ViewHolder,ReLayoutManager ...
2018-06-15 20:10:59 174
原创 python 中各种简单的代码写法
该篇博客主要记录python中各种简单的代码的写法,持续更新:1.lambda:它主要是简化函数的定义。在一般情况下我们定义一个函数通常是:def test(x): return x+1而是用lambda可以简化为:test =lambda x:x+1print(test(1))print(test(2))输出结果:232.rang
2018-01-11 20:11:58 17963
原创 python format的各种用法
新接触的python,这个语言对于我这个出入门的人来说感觉就一个词:amazing,有很多神奇,简略的写法是其他语言中不曾有过的,今天在这里主要是记录一下python中format的基本用法,用法的特点是:只有你想不到,没有它做不到的今天暂时在这里记录8种用法,在日后的学习中如果再碰到新的用法,再更新1.位置name='John'age=12print('{0} is {1}
2018-01-11 14:50:02 4390
原创 android三种XMl解析
android一共提供了三种XMl解析的方式,分别为:SAX解析,Pull解析,DOM解析。第一种:SAX解析: SAX是驱动型的xml解析,对文档进行顺序扫描,当扫描到document开始,元素的开始与结束,文档结束等地方通知相关处理事件处理函数,处理完函数之后继续进行扫描直到文档结束 实现步骤:通过SAXParserFactory得到一个SAXParser解析器,将文件
2016-12-07 20:44:57 3438 1
原创 mac android配置adb
mac 配置adb1.打开终端2.进入home目录 cd $HOME3.更新或创建.bash_profile文件 touch .bash_profile4.打开改文件 open -e .bash_profile5.添加你idk的tool以及platform-tools目录 export PATH=${PATH}
2016-05-13 10:30:34 325
原创 Android 广告轮播图
package com.view;import android.content.Context;import android.media.Image;import android.os.Handler;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import
2016-05-13 10:22:35 364
转载 身份证验证
身份证验证,包含两种一种是简单的验证,一种是根据国家有关规定进行验证import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import jav
2016-04-19 14:00:42 506
转载 as提升速度
Android Studio 启动速度优化1、开启 gradle 单独的守护进程当 Android Studio 遇到错误的时候,往往会导致 Android Studio 挂掉,为了防止退出程序,则另外开启一个线程来守护 Android Studio 的进程,具体操作。 在 C:\Users\.gradle 这个目录下,创建 gradle.properties 配置文件,复制以下配置进
2016-03-23 16:04:07 396
原创 android DisplayMetrics
android手机获取手机屏幕的相关信息 //获取手机屏幕相关信息 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Log.e("msg", "屏幕高度="+dm.heightPixels);
2016-02-17 11:06:53 411
转载 android 不错框架
1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请
2016-01-05 09:30:38 278
转载 android 自动获取短信验证码
转载于:http://www.cnblogs.com/top5/p/3421049.html前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码。主要就是实时获取短信信息。android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就Br
2015-07-07 12:05:11 593
转载 android - lint 常见错误
错误编码 错误说明 举例40 变量未声明 506 固定的Boolean值 char c=3; if(c525 缩排格式错误 527 无法执行到的语句 if(a > B) return TRUE; else retur
2015-06-02 11:31:32 4860
原创 android 随记1 Dialog和输入法
如果Activity已经显示输入法了,想让Dialog显示是输入法不隐藏,这个时候调用AlertDialog,就能实现Dialog和输入法的共存
2015-05-07 15:41:30 510
原创 android 判断输入法是否打开
if (getActivity().getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) { InputMethodManager imm = (InputMethodManager) getActivity().getApplicati
2015-04-27 14:36:49 1341
转载 spannableString设置常见的复合文本
http://orgcent.com/android-textview-spannablestring-span/#ClickableSpan
2015-04-11 15:44:22 357
原创 如何在android style/layout文件中使用自定义属性。
自定义属性: Style:引用自定义属性 #ddd #f6f6f6 //此处并不需要引用报名,或者定义命名空间layout:中引用 style="@style/ftest"
2014-12-02 16:32:43 698
原创 多Fragment嵌套是如何调用父Fragment的onActivityResult()方法
多Fragment嵌套是,父Fragment的onActivityResult方法不会被调用,如果需要
2014-11-18 15:14:51 627
原创 @SuppressWarnings()的参数
@SuppressWarnings(“unchecked”)@SuppressWarnings(“”)
2014-06-19 14:20:57 3268
原创 TextView自动识别电话,邮箱,电话
TextView自动识别电话,邮箱,电话,并给出相应操作,只需要在TextView中添加TextView自动识别电话,邮箱,电话
2014-06-18 11:40:50 610
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人