安卓工程师,全站工程师
零、前言 [1].个人对安卓绘制逻辑感到繁琐,自己封装了一个绘图框架 [2].自定义控件的绘制流程都基于我的这个库,详见:开源计划之--Android绘图库--LogicCanvas [3].
零、前言 [1].Bitmap是关于图象的类,也就是位图 [2].生成Bitmap对象的方式 [3].BitmapFactory.Options [4].
零、前言 [1].ImageView地位:直接继承自View,安卓源码1600+,算是个小类,但图片显示基本上都用它 [2].scaleType有点小烦,不过看图还是挺清晰的 [3].
零、前言 [1].本想在控件使用中穿插讲一下资源在加载,但感觉知识点挺多还是单开一篇专门讲一下吧。 [2].values/string.xml的使用 [3].
零、前言: 安卓图形绘制一直以来感觉都很繁琐 在html5时,我用JavaScript封装了一个HTML5的canvas库。 HTML5感觉和Android的canvas挺相似,所以考虑移植过来。
零、前言 [1].今天总结一下TextView [2].TextView在View家族的地位是:源码行数11000+,可以说是个大类 [3].TextView直接继承自View,EditText,Button,CheckBox都是它的后代 [4].
零、前言 [1].最近在总结了安卓的知识点,现在来穿插一个小项目,算是对前面的一个小小总结 [2].本案例是以前在慕课网的学习的一个免费课程,代码看不懂的可以去看看:号码归属地查询实用工具 [3].相比与视频课程,本案例按照我的理解,对项目结构进行了优化。
Json 是什么? 一开始在Android,对我来说它是一个有规则个字符串。 当我深入JavaScript后,感觉它越来越有意思,当成一个对象来用,属性、方法都能往里塞。
零、前言 [1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].
[1].本文接上文:RecyclerView基本使用 [2].RecyclerView把很多事都交给了我们,就连item的点击事件都没有 [3].在adapter中加载布局的时候,可以为item添加事件 [4].
零、前言 [1].RecyclerView可以说是现在安卓视图的一哥了 [2].加包implementation 'com.android.support:design:26.
[1].将下面线去掉,自定义条目样式,就可以实现下图效果 [2].以前实现这种效果一般用按钮组,有点麻烦 [3].Fragment同上篇 效果图 二、代码实现: 1.
[1].既然ViewPager和Fragment都总结完了,那就插一个材料设计中的TabLayout控件吧,这三者关系挺好 [2].TabLayout在上面就是曾经的ViewPager指示器,想当年都是自己封装来用,现在条件好了,安卓给了。
零、前言 [1].每次写Fragment要加载布局,为布局设置内容,挺麻烦的,搞个基类简单封装一下吧 [2].一般封装基类使用模板方法设计模式,基类中做一些常用的不变东西,需要拐点弯的逻辑就弄个抽象方法延迟到子类 [3].
零、前言 [1].认真看下图Fragment在ViewPager里的默认生命周期(可在浏览器中单独打开网页查看动图,清晰很多) [2].名字数据随机获取见:随机数据生成 [3].
安卓技术栈概览 1.安卓基础--代号--A AI--活动:Activity |---√ 1.Activity生命周期 |---√ 2.Activity启动方式 |---√ 3.
零、前言 [1]. 使用上文项目:1-VIII--ViewPager的基本使用 [2].对ViewPager的addOnPageChangeListener三个回调方法分析 [3].
零、前言 [1].ViewPager顾名思义是将若干视图一页一页的展现 [2].ViewPager和Fragment郎才女貌,天造之合,在加个TabLayout简直和睦一家人 [3].
1、ListView不显示蓝色阴影: 强迫症的你有没有很讨厌这个阴影,反正我是不喜欢,去除方法: 阴影.png listview.setOverScrollMode(ListView.
零、前言 [1].Activity向Fragment传数据 [2].Fragment向Activity传数据 [3].Fragment向Fragment传数据 一、Activity向Fragment传数据效果: ac2fg.
零、前言 [1].两个Fragment,点击左右按钮切换相应的Fragment [2].观察Activity 和两个Fragment生命周期变化 [3].
零、前言 [1].Fragment静态使用 [2].Fragment动态使用 一、Fragment静态使用 静态fragment.jpg 1.
零、前言 [0.]本案例使用这篇的项目(你也可以用其他的):4-VI--ListView的封装支持多种条目 [1].条目点击事件 [2].条目长按事件 [3].
零、前言 [1.]封装了一晚,总算把多条目的ListView封装了一下 listview.gif 一、使用 1.初始化数据 ArrayList messages = new ArrayList(); messages.
零、前言 [1].第一次自己ListView封装时,封装的比较差,用起来不是很好用,虽然比起原生好很多 [2].第二次接触ListView封装是在慕课网hyman的课程,深深折服 [3].
零、前言 [1] ListView 可以说是曾经的数一数二的控件,现在渐渐被RecycleView夺取锋芒。简单功能的使用ListView还是可以的。 [2] 本篇数据来源随机数据,方法可以看这篇:1-VI--随机数据生成 [3] 本篇介绍Lis...
[1]在ListView篇之前,感觉有一点是需要提前准备的:数据 [2]也许会说:测试数据,用for循环出来不就行了吗? 但不好看啊。。。。 [3]为此打造一个随机数据的类 1.
零、前言 [1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取 [4].如果只是想使用的人,直接把静态方法拷贝即可,想知道原理的,图片和注释认真看一下,也可以自己分析一下联系人的表。
零、前言 [1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取 [4].不太熟悉安卓运行时权限的童鞋可以看一下我封装的权限申请类:TI--安卓运行时权限完美封装 [5].如果只是想使用的人,直接把静态方法拷贝。
零、前言 [1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取 [4].不太熟悉安卓运行时权限的童鞋可以看一下我封装的权限申请类:TI--安卓运行时权限完美封装 [5].如果只是想使用的人,直接把静态方法拷贝即可,想知道原理的,图片和注释认真看一下,也可以自己分析一下联系人的表。
零、前言 [1]熟悉MySQL的学这个就像会西瓜的人去学吃哈密瓜一样简单。 [2]如果对MySQL不太熟悉的童鞋,可以看一下我的这篇:SpringBoot-14-MyBatis预热篇,MySQL小结 [3]SQLite:安卓内置轻量级的关系型数据库 [4]强烈建议语句什么的提前写好,在MySQL上测试一下,不然少个分号,多个逗号什么的就呵呵了 [5]安卓有API支持数据库操作,但感觉不怎么灵活,感兴趣的可以自己了解一下 [6]本篇介绍基础使用,下篇会封装一下。
零、前言 [1]把我的缓存文件工具改写成了策略模式,感觉还不错。 [2]以前静态方法调用,很方便,但看着就是不爽,代码真的太冗余了。 [3]突然灵光一闪,"少年,看你骨骼惊奇,策略模式了解一下吗。
零、前言 [1]读写SD卡需要运行时权限。 [2]如果对运行时权限不清楚的童鞋,可以看一下我的封装:TI--安卓运行时权限完美封装 一、使用:SD卡文件读写 FileHelper fileHelper = FileHelper.
零、先说一下我的IO小工具方法: 1.IO读写: IO.png 2.读取InputStream /** * 读取InputStream * * @param is 输入流 * @return ...
零、前言 以前我的SharedPreferences封装类根据不同类型getXXX,setXXX分好多情况。现在回过头看看,咱也是玩过泛型的。 突然灵光一闪,"少年,看你骨骼惊奇,泛型了解一下吗。
零、前言: [1]两行代码解决运行时权限 [2]用户拒绝后显示提示信息,有再次验证功能 [3]验证成功回调 一个权限效果: 一个权限效果.gif 六个权限演示: 六个权限演示.
零、前言 [1]. aidl:Android Interface definition language(安卓接口定义语言),目的:提供进程间的通信接口 [2].
零、前言 1.上篇中MyBinder暴漏在外,亲自上阵,执行方法。Binder是连接者,能不出面尽量不出面,一个"电话(接口)"搞定的事就不要让他老人家(MyBinder)亲自跑一趟。
零、前言 1.在绑定时调用计时器,间隔打印时间 2.解绑时解除计时器 3.在Activity中调用Service的方法 绑定服务.gif 一、代码实现 1.
普通Service特性 1.startService方法启动,不关闭,则一直运行,即使退出了当前Activity 2.基于此可以实现音乐播放器的后台播放 3.
零、前言:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中 玩游戏王的过程可以抽象为: 模板方法.png 一、游戏王游戏抽象类 /** * 作者:张风捷特烈 * 时间:2018/8/25 0025:9:23 * 邮箱:1981462002@qq.
零、前言:将抽象化与实现化脱耦,使得二者独立的变化 桥接模式的介绍什么的就免了(我懒),程序员间还是用图和代码交流吧 代码中有些命名使用了汉字,还请见谅,毕竟设计模式还是易读得好些 一图镇楼 桥接模式.
零、前言 1.按电源键,屏幕锁屏,再按电源键屏幕打开。在Activity开启时注册广播用来监听屏幕的关闭,Activity关闭时移除广播。 2.这里只能在该Activity中监听,退出后BroadcastReceiver被注销,后面将会结合Service增强应用范围 3.
零、前言 先讲个场景小故事: 从前,有个小男孩捡到一颗漂亮的石头,他想去卖,价格1元。 男孩(Boy)大喊:"我有一个漂亮的石头,只卖1元",一个石匠买了这个石头。
一、静态广播注册 MainActivity.java public class MainActivity extends AppCompatActivity { @BindView(R.
零、前言 1.打开RedActivity点击屏幕进入BlueActivity,此时RedActivity左移出,BlueActivity左移入 2.点击返回按钮BlueActivity右移出,RedActivity右移入 默认跳转模式: Activity默认跳转动画.
零、前言 打开FromActivity,通过按钮以返回结果方式打开ToActivity,同时在intent中加入数据,在ToActivity的onCreate方法中使用数据填充到TextView上。
前言: 一个正整数可以分成若干组整数乘式: 若规定乘式左侧数小于右侧数,则所有乘数的集合便是该数的公因数。 如:24=1X24;24=2X12;24=3X8;24=4X6,则24的公因数是1,2,3,4,6,8,12,24 若将左乘数当做白球放于白盒,右乘数当做黑球放于黑盒,则 P1:每一个白球与一个黑球之间存在唯一连接,使两球积为[源数]24。
零、前言 standard:默认的启动模式 |---启动一个Activity,该Activity就会在返回栈中入栈 |---该Activity处于栈顶的位置 |---每次启动都会创建该Activity的新实例 sing...
1.ActivityLifeCycle:测试生命周期的Activity 2.CommonActivity是一个普通的Activity 3.DialogActivity是对话框型的Activity activity生命周期.