自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 文件搜索命令

locate(在数据库中搜索文件) locate : 定位locate [文件名]因为搜索数据库,所以搜索速度非常快数据库文件的位置在/var/lib/mlocate,这个数据库中包含了所有的文件名该数据库文件每天更新一次,当我们作新建文件,或是其他等操作,系统不会主动更新数据库,需要 使用updatedb 命令更新locate命令搜索遵循/etc/updatedb.conf配置文件

2016-11-30 13:37:11 292

原创 Volley完全解析——使用、源码

Feathers’s Volley and Demo:Volley简介2013年Google I/O大会上推出了一个新的网络通信框架——Volley,它简单易用,适合通信频繁的操作,不适合大数据量的操作 volley本来的意思就是集中射击、集鸣:下载VolleyGit:git clone https://android.googlesource.com/platform/frameworks/vo

2016-11-29 13:37:57 799

原创 命令格式和常见权限

命令提示符[root@localhost~]#root: 用户localhost:主机名~:当前目录#/$:普通用户/超级权限用户文件类型及权限drwxr-xr-x 7 feathers feathers 4096 11月 21 23:10 下载-rw-rw-r-- 1 feathers feathers 2641 11月 23 15:01 性能优化~drwxr-xr-x 2 f

2016-11-26 23:28:27 311

原创 目录文件处理命令

cd(切换目录) change directorycd ~ 进入当前用户的home目录cd - 进入上次打开的目录cd .. 进入上一级目录cd . 进入当前目录mkdir(建立目录) make directories-p:递归创建示例:mkdir -p ./feathers/bookpwd (显示当前目录) print working directoryrmdir(

2016-11-26 23:06:11 359

原创 Material Design——Touch feedback Ripple波纹动画

Touch feedback(触摸反馈)Ripple波纹效果使用系统波纹效果要实现波纹效果首先要保证控件可以进行触摸反馈,一半要将foucesable和clickable 设置为trueandroid:background="?android:attr/selectableItemBackground" <!--波纹有边界-->android:background="?android:attr

2016-11-26 22:04:23 805

原创 Material Design —— Elevation高度、shadows阴影、clipping裁剪、tint着色

ElevationAndroid5.0加入了Z轴,这个Z轴的值就是View的高度Elevationelevation的值较大的View会遮盖住较小的code:<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

2016-11-26 19:02:49 5103

原创 View的foreground属性

View有一个foreground属性,这个属性用来设置布局的前景色。如下: 设置background 和 foreground的效果,其余布局相同 但是foreround的属性有时设置无效: 下图是在Android4.4环境下为Linearlayout和Fragment设置foregroud 我们发现,LinearLayout的前景色并未显示出来,查看源码后发现:case R.s

2016-11-25 23:08:55 2478

原创 Material Design——CardView的简单使用

作用卡片布局,有阴影、圆角、在V7包中添加CardView的依赖:compile 'com.android.support:cardview-v7:25.0.0'在XML中使用CardView: <!-- CardView_cardBackgroundColor 设置背景色 CardView_cardCornerRadius 设置圆角大小 CardVi

2016-11-25 16:24:31 1038

转载 hierarchyviewer偶然不能使用的解决方法

在DDMS的device中可以看到设备,并显示可以debug的状态,可以看到不显示进程的信息,但是hierarchyviewer也却不显示各个Window。在控制台的打印信息如下: - hierarchyviewer]Unable to get view server version from device emulator-5554 - hierarchyviewer]Unable to get

2016-11-24 22:04:07 1153

原创 Android性能优化——渲染

提高用户体验首先要提高app的性能造成卡顿的原因Android的CPU和GPU同时工作,在屏幕上绘制图片 如果手机的刷新频率为60hz,则代表每秒会刷新60次屏幕,即绘制60张图片,这也是大部分手机的刷新频率。 这个刷新频率也称为fps(帧率),即每秒钟的帧数,一个帧数就是一张图片,如果1000ms绘制了60帧,则代表每隔 1000 / 60 = 16.666ms 时,就需要绘制一个帧你一定玩

2016-11-24 21:38:21 539 1

转载 认清Android框架 MVC,MVP和MVVM

相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:(1)了

2016-11-23 12:12:26 350

原创 Android群英传——目录

感谢作者@eclipse_xu,历时12天的阅读已经结束,我省略了老生常谈的Activity

2016-11-23 09:57:11 640

原创 Android群英传——第九章五道安全防线与系统隐患

Android系统五道安全防线以及安全隐患五道防线: - 代码混淆, 因为java语言的特殊性(是指先编译为class),即使编译为apk也仍有危险,我么可以混淆关键代码,替换命名让破坏这阅读困难,同时也可以压缩代码,优化编译后的字节码。应用接入权限控制,应用使用相关权限,需要显示的向系统声明。只有当应用具有相应的权限,才能通过权限机制检查并使用系统的Binder对象完成对系统服务的调用。缺点:

2016-11-22 19:01:23 388

原创 Android群英传——第九章packages.xml的作用

Android系统在初始化时,PackageManager的底层实现类PackageManagerService 回去扫描系统的/data/system/目录下的packages .xml文件,这个文件包含了所有的apk的包信息,当Apk安装、删除升级时,这个xml同样也会更新packages.xml文件解析: 好吧 太多了,吓着我了<permissions>标签 定义了目前系统中的所有权限,分

2016-11-22 17:28:13 2643

原创 Android群英传——第九章ActivityManager获取信息

ActivityManager不同于PackageManager,PackagerManager侧重于APK包的信息,而ActivityManager则侧重于运行中的应用信息ActivityManager.MemoryInfo(全局内存使用信息): availMem 系统可用内存, totalMem 总内存, threshold 低内存阀值 (判断当前内存是否过低的临界值),

2016-11-22 17:26:31 415

原创 Android群英传——第九章使用PackageManager获取应用包信息

Apk信息的获取使用PM(PackageManager)和AM(ActivityManager)管理APK PM负责包管理,AM负责Activity管理在Mainifest.xml中, activity与receiver标签会被系统封装为ActivityInfo类 service标签则会被封装为ServiceInfo类 application标签会被封装为ApplicationInfo类,A

2016-11-22 12:08:08 515

原创 AndroidStudio报错:UnsupportedMethodException

AndroidStudio运行报错:UnsupportedMethodException Unsupported method: AndroidProject.getPluginGeneration(). The version of Gradle you connect to does not support that method. To r

2016-11-21 23:24:30 792

原创 Android群英传——第九章系统信息的获取

Android系统信息的获取系统信息来源于/system/build.prop文件 我们可以使用adb通过终端进入/system目录,输入cat build.prop命令查看文件信息以下是我的模拟器的build.prop文件内容# begin build properties# autogenerated by buildinfo.shro.build.id=MASTERro.build.d

2016-11-19 19:16:37 804

原创 Android群英传——第七章自定义动画

关于Matrix请看博客:http://www.cnblogs.com/qiengo/archive/2012/06/30/2570874.html#translateimport android.graphics.Camera;import android.graphics.Matrix;import android.view.animation.AccelerateInterpolator;

2016-11-19 15:26:24 331

原创 Android群英传——第七章布局动画

所谓布局动画是指,在ViewGroup上,给ViewGroup增加View时添加一个动画过度的效果。使用android:animateLayoutChanges="true"开启布局动画。我们可以通过以下方式设置布局动画:// 参1:动画 参2:动画delay时间,当delay不为0时,可以设置子View显示的顺序// ORDER_NORMAL:顺序// ORDER_RANDOM:随机// O

2016-11-19 13:32:32 283

原创 Android群英传——第七章Animator属性动画

Animator顾名思义:动画制作者,用来生成、管理动画。 属性动画的运行机制是通过不断地对值进行操作来实现的,并且它常常与Animation配合实现动画效果subClass:有两个接口: interface Animator.AnimatorListener:监听动画的监听器(如启动、重复、结束) interface Animator.AnimatorPauseListener:监听动画

2016-11-19 13:22:23 489

原创 Android群英传——第七章View的Animation

View动画 Animation首先感谢这篇文章以及博主:【Android 基础】Animation 动画介绍和实现Animation控制的是真个View,实现原理为:每次绘制视图时,View所在的ViewGroup中的drawChild函数获取该View的Animation的Transformation的值,然后调用canvas.concat(TransformToApplay.getMatri

2016-11-18 17:03:54 300

原创 Android群英传——第六章SurfaceView

SurfaceViewView通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕重绘,刷新的间隔为16ms。如果在16ms内View完成了你所需要执行的所有操作。那么用户在视觉上就不会产生卡顿的感觉;而如果执行的操作逻辑太多,特别是需要频繁的刷新界面上,例如游戏界面, 那么就会不断的阻塞主线程,从而导致画面卡段。 Skipped 47 frames!The Applicati

2016-11-18 16:07:30 328

原创 Android群英传——第六章Canvas的Layer图层

类似于PS的图层,几个图层叠在一起形成一个图片有了图层后,canvas可以在不同的图层中进行绘画 图层采用栈的方式进行管理:如下所示 使用save() 与 saveLayerAlpha()建立一个图层,入栈使用restore()[移出栈顶图层]和restoreToCount()[移出图层,让栈中的图层数量为count]图形的绘制(drawXXX())只会发生在栈顶中即使用save()创建一

2016-11-17 16:37:43 539

原创 Android群英传——第六章Canvas绘图技巧

使用canvas的平移画布的操作,实际上是改变屏幕坐标原点在Canvas当前层的位置所谓canvas的图层(类似ps),可以理解为每一个draw操作就是一个透明的图层,层层叠在一起就形成了整个图形所以当我们移动canvas时,之前绘制的图形并不受影响,不会跟着移动可以使用save()保存坐标的位置,使用restore()恢复保存的状态使用canvas的平移旋转等操作实现如下效果: c

2016-11-17 14:02:15 363

转载 Ubuntu下Sublime Text 3解决无法输入中文的方法

感谢百度经验:http://jingyan.baidu.com/article/f3ad7d0ff8731609c3345b3b.html 亲测,可用!保存下面的代码到文件sublime_imfix.c(位于~目录)#include <gtk/gtkimcontext.h>void gtk_im_context_set_client_window (GtkIMContext *contex

2016-11-17 11:00:11 193

原创 Android群英传——第六章屏幕尺寸信息

屏幕尺寸信息屏幕大小: 以寸为单位,如4.7寸5.5寸,计算:屏幕左上角到右下角的距离(1英寸 = 2.54厘米)分辨率: 720x1280 代表宽有720像素点 高有1280个像素点 像素点: px(单位),像素不是一个点或一个方块,而是一个抽样的采样,实际是一片面积。密度值: DPI(密度值的单位) Dots per inch,每英寸像素点 也称PPI(Pixels pe

2016-11-16 16:46:35 269

原创 AndroidUtils——DensityUtils

/** * 常用单位转换类 * Created by feathers on 16-9-23. * * @author feathers */public class DensityUtils { private DensityUtils() { /* cannot be instantiated */ throw new UnsupportedO

2016-11-16 16:43:31 680

原创 Android群英传——第五章实现滑动的7种方式(六七)ViewDragHelper自定义侧滑菜单

ViewDragHelper你问我这个类是个啥,那我告诉你 知道侧滑菜单DrawLayout不? 他的背后就是它在操控,非常强大!! 有了这个类,麻麻再也不用担心我自定义半天的控件了,很厉害有木有!!! code:import android.content.Context;import android.support.v4.view.ViewCompat;import android.su

2016-11-16 15:52:52 595 2

原创 Android群英传——第五章实现滑动的7种方法(五)Scroller

Scroller上一个方法中我们说到: scrollTo和scrollBy都是瞬间移动的,为了它们达到平滑移动的效果,我们可以通过motionEvent来多次处理, 但是,如果是像ViewPager一样的操作,当用户滑动并抬起时,Viewpager会自己进行回弹或者进入下一个page,期间没有任何MotionEvent, 如果使用scrollBy和To则会直接移动,没有动画效果,这又该怎么办呢

2016-11-16 12:51:54 341

原创 Android群英传——第五章实现滑动的7种方法(四)scrollTo和scrollBy

scrollTo()和scrollBy()的区别scrollTo()代表让View移动到一个具体的坐标点:scrollTo(x,y) 移动到(x,y)点scrollBy()则代表横纵增量:设原点为(a,b),则scrollBy(dx,dy) 后 坐标变为(a+dx, b+dy)scrollBy和scrollTo的移动,是移动View的content,即让View的内容移动(比如listView

2016-11-15 18:26:03 370

原创 Android群英传——第五章实现滑动的7种方法(一二三)

实现滑动的基本思想:当触摸View时,系统记下当前的坐标当手指移动时,系统记下当前移动点的坐标从而获取了一个偏移量通过这个偏移量修改这个View的坐标即可实现滑动的过程要实现的效果如下: 方法一:layout方法直接采用了基本思想:import android.content.Context;import android.util.AttributeSet;import android

2016-11-15 17:10:59 334

原创 Android群英传——第五章常用触控事件MotionEvent与获取View坐标长度的各种方法

触控事件MotionEvent// 单点触摸按下动作int ACTION_DOWN// 单点触摸抬起动作int ACTION_UP// 触摸点移动动作int ACTION_MOVE// 触摸点取消动作int ACTION_CANCEL// 触摸动作超出边界int ACTION_OUTSIDE// 多点触摸按下动作int ACTION_POINTER_DOWN// 多点触摸抬起

2016-11-15 15:18:26 1170

原创 Android群英传——第四章动态改变ListView的布局

看效果: 看代码:import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout

2016-11-15 14:50:56 353

原创 Android群英传——第四章自动显示隐藏ActionBar/Toolbar的ListView

这中效果最为常见: 当ListView向上滑动的时候,Toolbar进行隐藏,当向下滑动时,Toolbar则又显示出来了。 如图 完整代码实现如下:import android.animation.ObjectAnimator;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;impor

2016-11-15 11:44:28 407

原创 在onCreate()中获取控件的宽高等信息的几种方法

我们都知道,View的onMeasure()方法是在onCreate()方法之后调用,我们在onCreate()中获取控件的width和height总是为0。 解决这个问题,有以下几种方法: // 根据提供的大小值和模式创建一个测量值(格式) int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UN

2016-11-15 11:14:39 270

原创 ViewTreeObserver类监听ViewTree

ViewTreeObserver,顾名思义,是一个Observer,主要用来监听ViewTree的变化 ViewTreeObserver不应该被应用程序实例化,因为他是由views hierarchy提供的,我们要使用view.getViewTreeObserver()方法来获取它的实例。 它提供了一些方法和接口,用来让我们来监听view视图的变化。 使用步骤: 1. 获取ViewTreeO

2016-11-15 10:26:49 845

原创 Android群英传——第四章具有弹性的ListView

具有弹性的ListView实现起来比较简单,只需修改ListView的如下方法即可: int mMaxOverDistance = 50; private void initView() { DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); float density

2016-11-14 18:47:56 310

原创 Android群英传——第四章ListView滑动监听

ListView的滑动监听大部分重写ListView都是在滑动事件上下功夫,以达到特殊的效果。 有时候还会使用GestureDetector手势识别、VelocityTracker滑动速度检测等辅助类。 listView的滑动监听主要有两个类:onTouchListener、onScrollListeneronTouchListener:listView.setOnTouchListener(n

2016-11-14 16:26:52 398

原创 Ubuntu下录制屏幕并做成gif图片

Ubuntu(Linux)下录制GIF图片:安装屏幕录像器 kazamsudo apt-get install kazam安装mplayer,转换视频文件sudo apt-get install mplayer安装imagemagicksudo apt-get install imagemagick录制视频: 在bash中搜索kazam开始录制,然后保存视频// 将视频转换为图片们mplaye

2016-11-14 15:36:29 1151

ValidateCode.jar

ValidateCode.jar 生成验证码

2016-12-10

空空如也

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

TA关注的人

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