自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jarry的博客

一步一步来到你身边

  • 博客(24)
  • 收藏
  • 关注

原创 AndroidStudio打包时包依赖冲突

在build.gradle中依赖了很多第三方的项目,在出现jar包的冲突时,如下图: 如果我们无法用眼睛排除那些包依赖重复,就很蛋疼了,不过可以试试下面的命令(具体依赖冲突的包根据自己项目的冲突情况而定,这里是commons-io):gradlew :app:dependencyInsight --configuration compile --dependency commons-io如果项目

2017-08-22 11:08:27 798

原创 Android Studio 的NDK开发环境搭建

1. 准备1.1.版本要求(这个配置会解决Android Studio在开发C/C++的兼容性问题) (1) Android Studio 2.2以上; (2) Cmake3.6以上:是用来编译C/C++成so的构建工具,创建项目为C++的时候会自动导入这个插件; (3) Gradle2.5以上:从2.5开始支持C/C++,在本次选择2.8; (4) ndk-r-10以上:本次选择13

2017-04-01 14:47:28 2709

原创 Android应用热修复

一、修复的工具当前主要有两个主流的热修复工具: 1.阿里系:使用了DeXposed(修改了国外的),一年没有维护了,现在又搞了一个andfix,是一种黑客技术。自己去实现了底层的zyqote。从底层C的二进制来入手的。2.腾讯系:tinker Java类加载机制来入手的。这里我们使用tinker。二、热修复的原理(Java类加载机制)什么是热修复?一般的Bug修复,都是等下一个版本解决,然后发布

2017-02-26 18:07:29 540

原创 Path

一、Path工具类 用来记录线条的轨迹路径。 canvas.draw(path,paint);贝塞尔曲线 手机充电等等效果 现实生活当中:任何的曲线和曲面都可以用贝塞尔公式来解决。比如:iPhone 2.5D屏幕曲面;奥迪A9流线型;1.设计贝塞尔曲线或者贝塞尔曲线效果图 2.怎么去得到贝塞尔曲线的几个要素(比如二阶贝塞尔:p0初始位置,p1拐点,p2结束点) p1拐点如何确定,可以通过

2017-02-18 18:44:05 380

原创 Canvas

Canvas的使用以及高级部分 Canvas:画布、画板。 一、Canvas基本的使用 绘制直线、点、几何图形、曲线、Bitmap、圆弧等等 Path路径来绘制线条1.Region区域Canvas画布的正确的理解: 1)当canvas执行drawXXX的时候就会新建一个新的画布图层 canvas.drawRect(r, paint); 2)虽然后面新建了

2017-02-18 18:18:02 573

原创 滤镜和颜色通道

《滤镜效果和颜色通道过滤》1.自定义控件 2.动画–属性动画、补间动画、自绘动画(ValueAnimator+onDraw) 3.渲染效果–高级渲染、滤镜效果、颜色通道过滤(矩阵变换–高等数学,颜色矩阵)一、矩阵简述 1、定义 M*n矩阵。2、矩阵乘法 它的意思就是将第一个矩阵A的第一行,与第二个矩阵B的第一列的数字分别相乘,得到的结果相加,最终的值做为结果矩阵的第(1,1)位置的值(

2017-02-18 18:09:14 957

原创 画笔Paint

一、Paint的基本实用方法和技巧 1 .负责图形绘制相关 //重置 mPaint.reset(); mPaint.setColor(Color.RED); mPaint.setAlpha(255); //设置画笔的样式// mPaint.setStyle(Paint.Style.FILL);//填充内容// mPaint.setStyle(Paint

2017-02-18 17:53:07 439

原创 View的事件传递

在很多的滑动控件嵌套的情况下经常会出现滑动事件冲突等等。 在自定义控件的时候,需要处理触摸、点击、滑动等事件,需要考虑父容器的这些事件的冲突问题。 如何学习? 要处理view的事件就必须详细了解事件传递的流程,虽然view在处理事件传递的机制围绕的只是三点: 1.dispatchTouchEvent:事件分发 2.onInterceptTouchEvent事件拦截

2017-02-18 17:03:25 584

原创 自定义动画框架

在开发中,为了实现某些固定可配置的动画,即在布局中实现进行配置(或者在代码中配置)就可以完成的某些动画框架。 其实,说白了也就是自定义特殊控件,在控件中处理一些常用可规范的动画效果,比如:随着滑动而伴随的加速减速显现、缩放、透明度等效果。 做一个自己封装好的效果需要考虑:便于使用和重用;便于配置;实现的思路: (1)自定义view (2)设置可选择的配置参数 (3)处理动画实现的方式:

2017-02-18 16:32:04 390

原创 MaterialDesign之SVG

引导:微信引入的SVG技术。 http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207863967&idx=1&sn=3d7b07d528f38e9f812e8df7df1e3322&scene=4#wechat_redirect一.概念 1.SVG,即Scalable Vector Graphics 可伸缩矢量图形,这种图像格式在前端中已

2017-02-17 23:26:00 509

原创 MaterialDesign动画

1.Touch Feedback(触摸反馈) 例子:水波纹效果 水波纹效果是5.0+自带的。<Button android:layout_width="wrap_content" android:layout_height="100dp" android:text="@string/hello_world" /> <Butt

2017-02-17 23:08:37 380

原创 属性动画

一、属性动画 什么是属性动画: 属性动画是从3.0及以后出现的(如果要兼容低版本,可以使用一个民间版第三方的一个jar NineOldAndroid.jar,用法跟系统的用法差不多)。 不断地控制控件的属性变化达到动画的效果,一般我们是一些组合的属性动画达到复杂的效果。以前都是:补间动画BetweenAnimation、帧动画FrameAnimation 比较之前的View动画,属性动画更加

2017-02-17 21:51:55 720

原创 MaterialDesign-沉浸式设计

一、什么是沉浸式? 官方的沉浸式Translucent:就是让整个APP沉浸(充斥了整个屏幕)在屏幕里面,没有显示状态栏,甚至没有显示底部导航栏。 平时大家所讨论的沉浸式:比如QQ的顶部Toolbar和状态栏程一体的颜色。二、StatusBar兼容开发(状态栏) 1、 5.0以上的 API 5.0+自动实现了沉浸式效果,状态栏的颜色跟随你的主题里面的colorPrimaryDark属性。

2017-02-17 14:25:23 842

原创 TabLayout

一、什么是TabLayout 1.以前使用TabHost。比如网易新闻客户端那样可以滑动的标题栏。 android.support.design.widget.TabLayout使用场景: TabLayout控件,切换Fragment TabLayout+ViewPager+Fragment 二、使用1.引入Design兼容包 2.设置属性app:tabIndicatorColor="@c

2017-02-17 14:01:06 739

原创 Palette调色板

一、什么是Palette 1.Palette:可以在一张图片里面分析出一些色彩特性:主色调、鲜艳的颜色、柔和颜色等等……比如: 引入v7里面的一个单独项目Palette: android.support.v7.graphics.Palette;二、使用BitmapDrawable drawable = (BitmapDrawable) iv.getDrawable(); Bit

2017-02-17 13:37:48 838

原创 Toolbar

MaterialDesign之Toolbar 一、简介 屏幕中的导航—顶部导航:android.support.v7.widget.Toolbar1.由于早期的触屏手机中苹果的设计和体验深入人心,在android中为了设计一种顶部导航的效果,谷歌干脆规范了顶部导航—ActionBar(3.0API,也有兼容包)。2.但是随着Android系统不断更新以及开发者在实际开发中,使用ActionBar

2017-02-17 11:50:05 531

原创 TextInputLayout

TextInputLayout是一个强大的带提示的MD风格的Edittext 看源码:TextInputLayout extends android.widget.LinearLayout<android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:

2017-02-17 10:35:56 468

原创 Snackbar

Snackbar:的提出实际上是界于Toast和Dialog的中间产物。 Toast: 用户无法交互; Dialog:用户可以交互,但是体验会打折扣,会阻断用户的连贯性操作; Snackbar既可以做到轻量级的用户提醒效果,又可以有交互的功能(必须是一种非必须的操作)。 public void showSnackbar(View v){ //LENGTH_INDEFINI

2017-02-16 23:19:07 328

原创 侧滑

以前是有民间的效果:SliddingMenu侧滑两种效果: 1.盖在整个页面上面; 2.在Toolbar下面。MaterialDesign的侧滑 在MD提出来以后,谷歌就收录并改变了很多开源项目,放到API及support包里面。实现方式:1.DrawerLayout 抽屉容器 来自support-v4包里面的(android.support.v4.widget),相当于一个自定义容器 ex

2017-02-16 16:46:35 340

原创 RecyclerView基础

一、RecyclerView是什么 RecyclerView从2014年发布到现在已经很长时间了,使用已经相当普遍。它是support.v7包中的控件,谷歌在高级版本提出一个新的替代ListView、GridView的控件,同样拥有item回收复用的功能。二、RecyclerView的优点 1.自带了性能优化:ViewHolder RecylerView封装了viewholder的回收复用,也

2017-02-16 13:54:26 602

原创 MaterialDesign介绍和初步使用

MaterialDesign介绍和初步使用一、关于Material Design 从Android5.0开始引入的,是一种全新的设计语言(翻译为“原材料设计”),其实是谷歌提倡的一种设计风格、理念、原则。 拟物设计:IOS最开始使用,是扁平化设计一种结合体验。还吸取了最新一些科技理念。 层次感:View Z轴 (比如按下去阴影效果,加强3D效果)1.对于美工:遵循MD的界面设计、图标合集。

2017-02-16 09:39:56 1030

转载 给程序员的忠告(转)

给程序员的忠告(转)展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。自己的户口档案、养老

2016-05-17 15:06:24 254

原创 Android四大组建

Android 四大组件之Activity四大应用程序组件是Android应用程序中最重要的部分,分别是:Activity、Server、Content provider、BroadCast。1、Activity (1)Activity是Android提供和用户交互的组件,每一个activity被给予一个窗口,在上面可以绘制用户接口。  注意:必须在manifest文件声明activity,为了

2016-03-10 16:10:10 452

原创 Android适配器

一:适配器中提高性能优化如下:1.利用convertView利用Android的Recycler机制,利用convertView来重新回收View,效率有了本质提高。View的每次创建是比较耗时的,因此对于getview方法传入的convertView应充分利用 != null的判断 。2.使用ViewHolderViewHolder将需要缓存的view封装好,convertView的setTag才

2016-03-10 15:56:12 679

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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