独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了<Android进阶之光>这本书的编写.写作过程中并没有遇到什么困难,就是书名一直确定不下来,后来受到了<运营之光>的启发,这本书的名字才最终确定下来,寓意就是为Android开发者的进阶之路带来指引和光明. 为什么写这本书 官方话这里我就不说了,其实就两点: 1.目前市场上的Andr…
No1: 标准注解: 1)@Override:覆写 2)@Deprecated:过时 3)@SuppressWarnings:取消警告 4)@SafeVarargs:申明使用了可变长度参数的方法 No2: 元注解:用来注解其他注解,从而创建新的注解 1)@Targe:注解所修饰的对象范围 2)@Inherited:注解可以被继承 3)@Documented:应该被JavaDoc工具记录 4)@Retention:保留策略 5)@Repeatable:一个注解在同一声明类型上多次使用 No3: 定…
接上篇<Android进阶之光>--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menus 5)选择器 6)滑块控件-Sliders 7)进度和动态 8)Snackbar(底部可操作弹出框)与Toast 9)Tab No2: Snackbar 包含了文字信息和一个可选的操作按钮 Snackbar.make(activity_main,"标题",Snackbar.LENGTH_…
发过好几个ADB的工具,有很多朋友用了之后给我反馈了不少的意见和bug,这里非常感谢他们,所以今天花了一天的时间重新整理了一下ADB,并且修改了这些BUG.也有朋友建议我给一个修改列表,今天发这个帖子把对ADB 功能的修改说一下: 1) 支持Android 4.2 以上的系统.4.2 以及4.2 以上的系统会在手机上弹出一个验证框,必须要点确定,否则设备一直会处于offline状态.支持4.2 的系统并不是说可以绕过手机上的验证,而是会让手机上弹出一个框. 2) 支持所有的中文命令,并且修改了在…
Rule #0 为移动平台进行优化 为移动平台进行优化是十分重要的,因为移动平台的性能大概只有桌面平台的1/10左右(*1),它通常意味着: 更慢的CPU速度,这意味着不经过优化的JavaScript代码,性能会十分糟糕: 更小的内存,没有虚拟内存的支持,这意味着加载太多的资源容易导致内存不足,JSVM更容易引发GC,并且GC造成的停顿时间也越长: 更慢的GPU速度,没有独立的显存,内存带宽相比PC要慢的多,这意味着即使使用GPU对Canvas进行加速,您仍然需要小心网页DOM树的复杂度,游戏所…
上一篇RadioGroup比较简单,所以再学习个spinner的OnItemSelectedListener事件,前面说过spinner的主要功能就是提供列表显示的选择,比如我们在选择城市的时候就会用到spinner(网页中更加常见),在要获取选择内容时就要用到OnItemSelectedListener来监听获取.下面同样用例子来说明. 运行效果如下: 同样在values下面新建一个xml文件(Spinner组件篇有),city_spinner: <?xml version="1.0&q…
第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material Design 是一种大胆的平面化创新.换句话说,谷歌希望能够让Material Design 给用户带来纸张化的体验.这种新的视觉语言,在基本元素的处理上,借鉴了传统的印刷设计,以及字体版式.网络系统.空间.比例.配色和图像使用等这些基础的平面设计规范.另外,Material Design 还推崇实体隐…
Android 5.0新特性 1)全新的Material Design设计风格 2)支持多种设备 3)全新的通知中心设计--按照优先级显示 4)支持64位ART虚拟机 5)多任务视窗Overview 6)设备识别解锁--比如附近信任设备 7)Ok Google语音指令 8)Face unlock面部解锁 9)新增RecyclerView 10)新增CardView 11)悬挂式Notification(进程焦点不变,不打断用户操作,setFullScreenIntent.还增加了通知的显示等级)…
No1: Project的build.gradle文件添加 buildscript{ dependencies{ ...classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } Module:app的build.gradle添加 apply plugin: 'com.neenbedankt.android-apt' ... dependencies{ ... apt 'com.google.dagger:dagger-compi…
No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): 1)POSTING(默认):该事件是在哪个线程发布出来的,事件处理函数就会在哪个线程中运行 2)MAIN:事件的处理会在UI线程中执行 3)BACKGROUND:在新线程或者发布的子线程中执行,禁止进行UI更新操作 4)ASYNC:在新建的子线程中执行,禁止进行UI更新操作 No3: EventBu…
No1: 添加依赖库 Project的build.gradle文件添加 buildscript{ ... dependencies{ ... classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } 在Module:app的build.gradle文件添加 apply plugin:'com.neenbedankt.android-apt' ... dependencies{ ... compile 'com.jakewhart…
No1: RxJava使用 dependencies{ compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' } 1)创建Observer(观察者) Subscriber subscriber = new Subscriber<String>(){ @Override public void onCompleted(){ Log.d(TAG,"onCompleted"); } @…
事件总线RxBus,替代EventBus和otto 1)创建RxBus public class RxBus{ private static volatile RxBus rxBus; private final Subject<Object,Object> subject = new SerializedSubject<>(PublishSubject.create()); private RxBus(){ } public static RxBus getInstance(){…
1)配置 dependencies{ ... compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' compile 'com.squareup.retrofit2:retorfit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.1…
No1: Volley源码分析: Volley.newRequestQueue-> RequestQueue.start()-> CacheDispatcher.start()->CacheDispatcher.run()-> NetworkDispatcher.start()->NetworkDispatcher.run()-> RequestQueue.add()-> BasicNetwork.performRequest()-> HttpStack.p…
No1: 实现多线程的3中方法 1)继承Thread,重写run()方法 2)实现Runnable接口,并实现该接口的run()方法 3)实现Callable接口,重写call()方法 public class TestCallable{ //创建线程类 public static class MyTestCallable implements Callable{ public String call() throws Exception{ return "Hello World";…
No1: View的滑动 1)layout()方法的 public class CustomView extends View{ private int lastX; private int lastY; public CustomView(Context context,AttributeSet attrs,int defStyleAttr){ super(context,attrs,defStyleAttr); } public CustomView(Context context,Attr…
中级进阶推荐看一下以下这几本书 1.<Android从入门到精通(附光盘)> 明日科技 编 2.<第一行代码2 Android(第二版)> 郭霖 著 3.<Android开发进阶 从小工到专家 >何红辉 著 4.<Android进阶之光 >刘望舒 著 5.<Android开发艺术探索> 任玉刚 著 6.<Android群英传> 徐宜生 著 7.<疯狂Android讲义 >李刚 著 Android高级进阶 1.Android…
效果图如下: (ps:动态图有太大了,上传不了,就给大家口述一下要实现的功能吧) 要实现的功能:当ScrollView向上滑动超过一定距离后,就渐变的出现一个置顶的按钮,当滑动距离小于我们指定的距离时,按钮又消失. 实现原理:就是监听View的onScrollChanged()方法(回调方法),获取到ScrolView滑动的距离,如果大于我们的距离,则出现置顶按钮,否则,直接隐藏,且当按钮出现点击事件,让整个ScrollView滑动到(0,0)位置即可,不废话,直接上代码 自定义的ScrollV…
  <Android SwipeToDismiss:左右滑动删除ListView条目Item> Android的SwipeToDismiss是github上一个第三方开源框架(github上的项目链接地址:https://github.com/romannurik/Android-SwipeToDismiss ).该开源项目旨在:使得一个ListView的item在用户的手指在屏幕上左滑或者右滑时候,删除当前的这个ListView Item. 下载地址:点此下载 将开源框架文件加入这里: 将图…
在练习android时,想在Linearlayout内放一图片,使其图片置顶,预期效果是这样的: 但xml代码imageview写成这样后, <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/moegirl_help" /> 效果却是这样的 试了些方法,包括改为Relati…
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API 调用了未实现的OpenGL ES API函数,一般由于导入的第三方库如地图库,里面有用到OpenGL,但是模拟器的硬件默认是没有这个的,所以需要我们编辑模拟器Emulation Options选项勾选 Use Host GPU 然后重启模拟器再尝试,如果还是这个错误,那么我们只好用真机测试了. 2.…
由于上一篇文章:我的Android进阶之旅------>Android之动画之Frame Animation实例 中展示的是Frame动画效果,但是之前我是将图片截取下来,不好说明确切的动画过程,因此今天百度了一下gif动画的制作工具,找到了这款不错的软件GifCam.然后我使用该软件将动画制作成gif动画,然后更新了上一篇文章上传了新制作的gif动画,使博客的说明效果更佳. 该软件的界面如下所示: 该软件的操作步骤如下: 1.拖动 GifCam 标题栏,改变其位置,并调整 GifCam 窗口大…
SwipeMenuListView是在github上的第三方开源项目,该项目在github上的链接地址是:https://github.com/baoyongzhang/SwipeMenuListView . 下载后直接将项目包复制粘贴到需要的项目当中: 测试代码: item.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://…
摘要 上一篇文章主要介绍了ion-list的使用, ion-popup的使用, 通过sass自定义样式, localStorage的使用, 自定义指令和服务. 这篇文章实现的功能有消息的置顶与删除, 了聊天详情页面, 可伸缩输入框, 下拉刷新聊天记录, 要介绍的知识点有: filter orderBy的使用 引入angular-elastic模块 下拉刷新 keyboard插件的使用 如何在真机中调试 先看效果图(键盘弹起会覆盖聊天记录, 已修复): 清晰效果见视频 filter orderBy…
1.首先在build.gradle里添加 compile 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.2.1' 2.设置recyclerView的item布局 <?xml version="1.0" encoding="utf-8"?> <com.mcxtzhang.swipemenulib.SwipeMenuLayout xmlns:android="http://schemas.androi…
最近在研究掌上英雄联盟,主要是用来给自己看新闻,顺便copy个界面改一下段位装装逼,可是在我copy的时候发现这个东西 当你滑动到一定距离的时候导航栏会置顶不动,这个特性在微博和淘宝都有,我看了@ms-uap的文章,淘宝的实现方式是改变顶部显示栏的大小,我本来准备按照他那个思路去做的,但发现效果不理想,在滑动的时候,底部的界面也跟着在滑动,这样使得很不友好,所以我准备自己实现一个 先上个最终效果图吧,图比较大,请耐心等待 思路大概是这样的 将这个界面分为两行 <Grid.RowDefinitio…
调用WindowsAPI使窗体始终保持置顶效果,不被其他窗体遮盖: [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags); /// <summary> /// 得到当前活动的窗口 /// &…
winform窗体置顶 金刚 winform 置顶 今天做了一个winform小工具.需要设置置顶功能. 网上找了下,发现百度真的很垃圾... 还是必应靠谱些. 找到一个可以链接. https://social.microsoft.com/Forums/zh-CN/09f1343d-9827-4978-914f-bad8f499356a/winform?forum=visualcshartzhchs 所以设置winform窗体的方法: 把winform的窗口,属性,设置TopMost 属性=tr…
简述一下,分为三个步骤: 1. 添加Html代码 2. 调整Css样式 3. 添加Jquery代码 具体代码如下: <style type="text/css"> #GoTop{                width:40px;                height:40px;                background-color:#F59E1D;                position:fixed;                bottom:…