android
文章平均质量分 74
子墨_
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无能。
展开
-
浅谈贝塞尔曲线
浅谈贝塞尔曲线前段时间做了一个手写板功能的东西,其中手写部分用二次贝塞尔曲线完成,今天就来总结一下贝塞尔曲线在Android中的应用,先简单介绍各阶贝塞尔曲线的原理,然后实现通过贝塞尔曲线实现波浪线功能,感兴趣的同学继续看下去吧!概念在数学的数值分析领域中,贝塞尔曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝兹曲面...原创 2019-08-05 22:20:02 · 3672 阅读 · 0 评论 -
Android Theme and style
每家公司的app都有自己的统一的特色,这就涉及到theme和style,当然他们只不是仅仅为了这个特点存在,想activity的进入动画等都能通过theme和style实现,简单并且减少了代码数,熟练使用theme and style也能做出很炫的效果。what is theme ?主题是对整个应用中所有的Activity都起作用,或者对指定的Activity起作用 定义格式通常是改变原创 2015-11-15 20:49:59 · 3411 阅读 · 7 评论 -
Android 性能优化
上周四参加了MDCC大会的 Android,我比较关注的5R,做一个安静的app,图片缓存以及React Native For Android,其中很大一部分的内容都是讲的性能优化,后续还会给大家带来一篇React Native ,下面就来总结一下Android性能优化方面的内容!人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用原创 2015-10-19 18:02:39 · 6282 阅读 · 22 评论 -
简述fragment(上)
Fragment是在Android 3.0 以后引入的,如果你想在3.0以前使用那就只能引入v4包了,它很好的解决了Android的碎片问题,尤其是在平板上更能显示出Fragment的优势.Fragment既然这么好,如何加载呢?一种方法可以直接使用fragment布局,静态加载,另一种动态加载,在我们的应用中很少用到Fragment的静态加载方法,所以我们这里只讨论Fragment的动态加载.原创 2015-09-28 09:46:56 · 3838 阅读 · 10 评论 -
android继续探索Fresco
我们接着上文继续说,上篇博客中我们已经知道了Fresco怎么用,也知道了它的很多属性,但是很多时候xml文件是不能满足你的要求的,这就需要你在代码中动态的改变显示的内容,今天我们就来探索一下如何在代码中改变图片实现的状态和内容 前面我们已经使用过SimpleDraweeView这个控件了,显示图片的时候直接写了一个setImageURI(uri),Fresco不仅仅提供了这一个方法原创 2015-08-05 09:44:00 · 5093 阅读 · 13 评论 -
android事件分发(二)
很早之前写过一篇android事件分发的博客,主要写的是它是如何分发的,具体很多原理的东西都没有涉及到,今天就从源码看android如何控制它的分发机制。 鉴于手机屏幕的限制,所以android选择了分层的方式布局,这就引出了今天的主题--事件分发原创 2015-08-31 11:40:00 · 3792 阅读 · 9 评论 -
Android自定义控件之乱涂
随着Android的不断壮大,你想要的很多控件在github上基本都能找到,对于爱折腾的我来说,闲暇之余更喜欢自己倒腾,之前博客有提到想研究图片这一块,今天就来折腾一下编辑图片.先来实现在一张图片上坐标注,也就是说我可以在一张图片上乱画 在一张图片上乱花,首先要有一张图片,然后要有只画笔实现乱花 先把图片放上:public class DrawPicture extends View{ p原创 2015-08-14 19:09:38 · 3206 阅读 · 8 评论 -
android XXXActivity和getApplicationContext()区别
从接触android起,到处都能看到context(上下文)的身影,查看源码之后你会发现,它只是个抽象类,具体实现都在ContextWrapper实现。当你去查看android的源码时,你会发现activity,service和application都继承自ContextWrapper,也就是说它们都是context的子类,那我们应该如何给context的赋值呢?很多时候在acitivit原创 2015-07-21 10:04:21 · 3663 阅读 · 3 评论 -
LeakCanary:简单粗暴的内存泄漏检测工具
几乎每个程序员在开发的过程中都会遇到内存泄漏,那么我们如何检测到app是否哪里出现内存泄漏呢?square公司推出了一款简单粗暴的检测内存泄漏的工具-- LeakCanary什么是内存泄漏? 内存泄漏是指由于疏忽或者错误造成程序未能释放已经不再使用的内存,内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误失去了对于这段内存的控制,因而造成内存的浪费。原创 2015-08-07 15:47:05 · 7846 阅读 · 14 评论 -
android 初识Fresco
Fresco是facebook推出的一款强大的图片加载的框架,这个框架出来一段时间了,前一段时间使用过了ImageLoader的框架,生命在于折腾,今天就来折腾一下Fresco这个强大的框架 1.配置环境 由于我用的是android studio所以这里就只是说一下android studio下如何配置,在强大的gradle,只需要一句话搞定,gradle会帮你下原创 2015-07-27 09:32:25 · 6008 阅读 · 16 评论 -
android 开源框架Universal-Image-Loader解析
最近要在公司分享东西,很多项目中用到Universal-Image-Loader这个开源框架,没有太多的进程调度,没有各种内存读取控制机制、没有各种异常处理,一起学习一下1.UIL原理a.UI:请求数据,使用唯一的Key值索引Memory Cache中的Bitmap。b.内存缓存:缓存搜索,如果能找到Key值对应的Bitmap,则返回数据。否则执行c。c.硬盘存储:使用唯一Ke原创 2015-06-27 16:21:47 · 2825 阅读 · 4 评论 -
Android之即时通讯(一)----环境搭建
最近脑子比较乱,还是静下来弄点东西心里比较踏实.在上一家公司也有接触过即时通讯,是用xmpp协议实现的,然后使用openfire服务器,拿来直接用,今天来研究一下环信实现即时通讯1.注册环信开发者账号并创建应用在环信官网上点击注册,跳转到环信管理后台注册页面,如下图:在注册页面中填写详细资料,如下图:企业ID,只限于数字,字母,横线,且不能以横线开头原创 2015-05-11 11:01:21 · 3113 阅读 · 5 评论 -
Android 获得手机屏幕大小
Android在自定义控件时,经常需要获得屏幕的宽高,每次都要写,不妨直接把他封装成工具类,直接拿来用,废话不说,直接上代码/** * */package com.example.customview;import android.content.Context;import android.util.DisplayMetrics;import android.view.Win原创 2015-04-16 17:48:03 · 2535 阅读 · 5 评论 -
手把手教你配置Android studio
也许你以前用的是eclipse,现在as都出了这么长时间了,作为一个猿不能停滞不前啊,今天就直接用eclipse里面的东西来装as,follow me1.先从http://www.androiddevtools.cn/下载你要安装的as,这里我用的是1.2,你想用哪一个随意,最好用新的2.在bin下双击stdio,当然我的系统是64的,就需要点击stdio643.如果你的翻墙,原创 2015-04-23 15:54:01 · 2442 阅读 · 8 评论 -
Android四大组件之ContentProvider
以前用ContentResolver只是读取一下手机里的数据,现在公司做的东西也用不到提供给别人数据,今天主席提醒才想起来,我还跟这个传说中的四大组件之一不是很熟,今天就来研究一下它。 1.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外原创 2015-03-05 08:48:45 · 1774 阅读 · 0 评论 -
android 之 Camera
由于我刚入职现在的这家公司的时候,他们对涉及到图片的比较多,所以打算写一系列图片的文章,首先就从制造图片的地方开始写起–Camera如果你的app里面只是需要拍一张照片,只需要调用系统的照相机就可以满足你的需求了通过ACTION_IMAGE_CAPTURE调用系统的照相机intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);然后在通过startActiv原创 2015-12-28 10:16:57 · 3268 阅读 · 11 评论 -
Android 悬浮窗
iPhone有个很好用的白色圆点,今天就来研究下Android中的悬浮框,这里主要是实现一个快捷键的功能,当然也可以在悬浮框中做想做的事!悬浮窗的实现主要是通过WindowManager实现,当然WindowManager只是一个接口,想了解源码的同志们可以去看WindowManagerImpl,悬浮框主要是通过WindowManager中的addView,updateView,removeView原创 2015-12-20 22:09:27 · 5009 阅读 · 2 评论 -
Android activity任务栈
好久没写博客了,脑子都秀逗了,最近比较忙,整天睡不醒,还有私信我继续更新即时通讯的同伴们,近期可能没戏,但是我承诺的一定完成!任务栈,从它的名字我们就知道它有栈的特点『先进后出』,默认情况下activity的任务栈的名字就是你app的包名,当然,你也可以单独的为你的activity指定任务栈,通过修改TaskAffinity属性,当然不要指定成包名啦,否则跟没指定一样。任务栈分为前台任务栈和后台任务原创 2015-12-07 10:18:32 · 5467 阅读 · 5 评论 -
Kotlin 初体验
Kotlin 初体验Kotlin也是基于JVM设计的编程语言,相对Java来说,Kotlin在编写代码时有如下优势:代码简洁高效、函数式编程、空指针安全、支持lambda表达式、流式API等。kotlin配置在android studio 3.0以前需要下载kotlin插件 新建一个项目,新建完成后,点击code —> convert java file to kotlin...原创 2018-03-18 14:25:18 · 881 阅读 · 1 评论 -
android 单元测试
单元测试的重要的和必要性这里不在强调,本文介绍几个常用的单元测试的框架JUnit4JUnit4是一个java的单元测试框架,多数Java的开发环境都已经集成了JUnit作为单元测试的工具,android studio默认继承了JUNit4testImplementation 'junit:junit:4.12'JUnit4主要是通过注解的方式来识别测试方法,下面介绍几个常用原创 2018-02-05 10:54:59 · 806 阅读 · 0 评论 -
Android自定义控件:如何使view动起来?
本文发表于CSDN《程序员》杂志2016年8月期,未经允许不得转载!摘要Android中的很多控件都有滑动功能,但是很多时候原生控件满足不了需求时,就需要自定义控件,那么如何能让控件滑动起来呢?本文主要总结几种可以使控件滑动起来的方法实现其实能让view动起来的方法,要么就是view本身具备滑动功能,像listview那样可以上下滑动;要么就是布局实现滑动功能,像ScrollView那样使内测的子v原创 2016-08-07 17:39:11 · 3918 阅读 · 9 评论 -
DrawerLayout 源码分析
简介DrawerLayout充当窗口内容的顶层容器,允许”抽屉”式的控件可以从窗口的一边或者两边垂直边缘拉出使用抽屉的位置或者布局可以通过android:layout_gravity子view的属性控制从那边拉出,left/start代表从左边拉出,right/end代表从右侧拉出,需要注意的是只能有一个抽屉控件从窗口的垂直边缘,如果布局中每个垂直窗口有多于一个抽屉控件,将会抛出异常根布局使用Dra原创 2016-07-17 23:31:49 · 10741 阅读 · 8 评论 -
TextureView 使用
简介TextureView可以用于展示内容流. 例如像视频或者OpenGL场景的内容流. 内容流可以来自本应用程序以及其他进程TextureView只能应用于开启硬件加速的窗口不像SurfaceView那样,TextureView不会创建一个单独的窗口但是可以作为一个普通的View. 不同的是TextureView可以移动,平移,动画等. 例如,通过调用myView.setAlpha(0.5f)将T原创 2016-06-16 12:22:35 · 7490 阅读 · 0 评论 -
android LRUCache解析
android LRUCache解析LRU(Least Recently Used)最近最少使用算法原理缓存保存了一个强引用限制值的数量. 每当值被访问的时候,它会被移动到队列的头部. 当缓存已满的时候加入新的值时,队列中最后的值会出队,可能被回收LRUCache内部维护主要是通过LinkedHashMap实现这是一个安全的线程,多线程缓存通过同步实现 使用默认情况下,缓存的大小是由值的数量决定,重原创 2016-05-23 00:42:26 · 4403 阅读 · 1 评论 -
初识React Native
初始React Native简介Facebook 在 React.js Conf 2015 大会上推出了基于 JavaScript 的开源框架 React NativeReact Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替原创 2016-06-03 18:41:49 · 2311 阅读 · 2 评论 -
Android中的RxJava,Retrofit,MVP的使用
RxJava,Retrofit,MVP都是近几年讨论的比较热门的话题,我们也来凑个热闹!本博不展开讨论,分别讨论的文章有很多,后续有时间给出RxJava,Retrofit的源码分析先来说一下MVP(Model View Presenter)熟悉MVC结构的应该很容易理解MVP,这里先给出MVP的图解model具体业务逻辑处理的实现view负责显示数据、提供友好界面跟用户交互presenter负原创 2016-04-25 01:03:51 · 3696 阅读 · 2 评论 -
Bitmap API
1.简介Bitmap是Android系统中的图像处理的最重要类之一,通过bitmap可以获得图片的基本信息,以及对图片进行一系列的操作2.APIpublic boolean compress(CompressFormat format, int quality, OutputStream stream)把位图的压缩信息写入到指定的输出流.如果返回true,位图可以通过适当的输入流重建到BitmapF翻译 2016-05-09 00:58:22 · 6217 阅读 · 1 评论 -
Android 5.0状态栏和导航栏
Material Design推出之后,app中也开始沿用这种风格今天来说一下状态栏颜色设置,在4.4的时候推出了透明状态栏和导航栏,在不使用第三方库的情况下,4.4还是没有完全解决存在actionbar的问题,于是乎,5.0推出了比较给力的方式使用方式很简单了,并且官方也给出了文档,先给出一张图片,方便大家了解其中的属性大家可以根据以上图片设置自己想要的引入v7包不引入v7包引入v7包的话,原创 2016-04-10 22:46:24 · 2662 阅读 · 0 评论 -
Android 之 图片压缩
在上一篇文章中(Android之图片变换)主要说明了bitmap的使用,当然其中也包括一点图片压缩的内容,但是没有详细描述,这篇文章就来阐述一下平时Android使用的图片压缩技术从图片的压缩方式区分:质量压缩和尺寸压缩。质量压缩是在保持像素的前提下改变图片的位深及透明度等,来达到压缩图片的目的,经过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就原创 2016-02-27 17:24:48 · 2795 阅读 · 3 评论 -
浅谈handler
今天就来谈一下面试中经常被问及的handlerhandler是什么?handler是Android提供用来更新UI的一套消息机制,也是一套消息处理的机制(发送和处理消息)handler原理handler负责消息发送,looper负责接收handler发送过来的消息,并把消息发送给handler,messageQueue存储消息的容器这里先说明一下ThreadLocal,主要在线程中保存变量信息,主要原创 2016-03-08 22:06:14 · 3931 阅读 · 5 评论 -
JS与Native交互
实现JS和Native有两种方式:shouldOverrideUrlLoading(WebView view, String url)js与java互相调用先来说一下第一种方式shouldOverrideUrlLoading(WebView view, String url)通过给WebView加一个事件监听对象(WebViewClient)并重写shouldOverrideUrlLoadin原创 2016-01-15 10:44:21 · 9609 阅读 · 6 评论 -
android AndFix--热补丁框架
我正在参加CSDN的博客之星票选,如果你也喜欢我的文章的话,帮忙投我一票今天给大家带来阿里巴巴推出的AndFix框架首次给出大家这个框架的地址:https://github.com/alibaba/AndFix 对源码比较感兴趣的同学们可以自行研究代码AndFix介绍AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支原创 2015-12-14 16:42:23 · 7088 阅读 · 16 评论 -
Android 之 图片变换
说到图片,第一反映就是bitmap,那就先来认识一下bitmapBitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是 某个辅助类提供了创建Bitmap的接口,而这个类原创 2016-01-26 16:02:13 · 2876 阅读 · 4 评论 -
Android实现固定头部信息,挤压动画(类似通讯录)
半年前,那时候我还是个大四的学生,每天都在找工作度过,想去北京体验一下蚁族生活,奋然离开了济南,哎...在济南我们学校还是数得着的好学校,去了北京就什么都不是了,一切的辛酸只有自己知道,那时候的我只找开发方面的工作,也第一次体会到了女生的劣势...在找工作的过程中,大部分都是实习,跟我的预想有点冲突,去了XX集团,人家只要211,985的,没办法,去了XX工厂收到了类似通讯录的这么个任务...原创 2014-10-17 09:08:26 · 4702 阅读 · 3 评论 -
Android实现仿电脑的ip地址输入
最近该需求改到一个特别的,估计有人也遇到过这种恶心的需求,客户端居然需要输入ip地址,感觉有点扯,客户自己输入ip地址,呵呵,总之,不完成也不行啊,没有砍经理的力气,只能撸代码了.下面开始正题,先上一下运行效果,方便观看上面的输入框写成了一个自定义组合控件,方便使用,说起来功能也挺简单的,主要是组合了四个EditText,然后判断EditText输入内容,还有就是对焦点原创 2015-01-06 11:34:59 · 7470 阅读 · 17 评论 -
EventBus实现广播接收
大神的博客更新了,地址:http://blog.csdn.net/lmj623565791/article/details/40794879周末出去参加了个分享会,学到了很多,晚上回去整理一下,分享给大家,做开发的要多交流,跟大神交流可以学到很多,有些不是做项目就能了解的,以后多出去充充电废话少说,看了鸿洋更新的博客,写了个demo,真心觉得这个框架不错,个人感觉能用的地方很多,并且应用起原创 2014-11-10 10:54:28 · 3238 阅读 · 3 评论 -
Android中最方便的数据库--LitePal
最近看到了郭神分析的LitePal框架,感觉很强大,试用了一下,确实不错,你习不习惯我不知道,因人而异嘛,感觉很适合我看完之后,想了想,对我来说吧,实体来个set赋值,要是数据很多的话那可麻烦大了,更何况我现在工作内容基本上都是跟服务器交互,数据吗,就不用说了...一般都是json传送数据,直接用Gson解析,扔到list里面就不管了,所以我这里需要把list内容保存,于是乎,我就下载原创 2014-10-30 16:17:20 · 7274 阅读 · 3 评论 -
Android自定义之属性(二)
自定义控件中的自定义属性原创 2014-11-11 22:33:02 · 1774 阅读 · 3 评论 -
Android自定义组合控件(一)
最近参加济南一分享会,感受颇深,也很欣赏大神们的分享精神,好东西大家一起分享不能做只会搬砖的码农,要成为一个真正的程序员,当然我是媛,程序员分为三类,初级程序员,中级程序员,高级程序员,也不能总是做个小菜鸟,那也太没有追求了,为了我的大神梦,开始学习自定义控件本博客从最简单的开始,先来介绍自定义组合控件,在我看来自定义空间中组合控件是最简单的,这里拿最常见的图片和文字组合来说明先上界面原创 2014-11-10 15:28:57 · 1890 阅读 · 0 评论 -
使用FragmentTabHost和ViewPager实现仿微信主界面侧滑
最近看到很多界面主页都差不多,决定研究研究写出来,以后直接拿来用,不做代码的轮子,多总结,多学习还是废话少说,先上图介绍一下我的代码:首先是布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"原创 2014-10-22 11:51:21 · 6704 阅读 · 8 评论