自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mjd的专栏

你的问题我碰到过哎,来,我告诉你...... 这是让自己感觉经验在不断积累的最直接也是最可靠的方式。

  • 博客(80)
  • 问答 (6)
  • 收藏
  • 关注

原创 MySQL高级增删改查

新增数据基本语法 insert into 表名 [(字段列表)] values (值列表);主键冲突更新和替换 主键冲突:更新操作 insert into 表名[(字段列表:包含主键)] values(值列表) on duplicate key update 字段 = 新值; 主键冲突:替换 repalce into 表名[(字段列表:包含主键)] values(值列表) ; 蠕虫复制从

2016-10-29 15:44:21 1135

原创 MySQL 关系和范式

关系将实体与实体的关系,反应到最终数据库表的设计中来。将关系分为三种:一对一,一对多(多对一)和多对多。 所有的关系都是指的是表与表之间的关系。一对一一张表中的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然。学生表:姓名,性别,年龄,身高,体重,婚姻状况,籍贯,家庭住址,紧急联系人 id 姓名 性别 年龄 身高 体重 婚姻 体重 籍贯 家庭住址

2016-10-23 10:21:32 777

原创 SQL列属性

列属性: 真正的约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来保证数据的合法性。列属性有很多:NULL / NOT NULL,default,primary key,unique key,auto_increment,comment空属性虽然数据库基本都是字段为空,但是开发的时候,尽量保证所有的数据都不应该为空,空数据没有意义,空数据也没有办法参

2016-08-22 23:01:20 4477

原创 Mysql数据类型

所谓的数据类型:对数据进行统一的分类。从系统的角度出发,是为了使用统一的方式进行管理,更好的利用有限的空间。SQL中将数据类型分了三大类:数值类型、字符串类型和时间日期类型 数值型数值型数据:都是数值 系统将数值型分为整数型和小数型整数型存放整形数据:在SQL中 因为更多要考虑如何节省磁盘控件,所以系统将整型又细分了5类 1. Tinyint:迷你整型,使用一个字节存储,

2016-07-13 21:10:39 3809 3

原创 SQL基本操作

基本操作:CRUD 将SQL的基本操作根据对象进行分类,分为三类:库操作,表操作(字段),数据操作库操作对数据库的增删改查新增数据库基本语法 Create database 数据库名字【库选项】 库选项:用来约束数据库,分为两个选项 1. 字符集设定:charset/character set 具体字符集(数据存储的编码格式),常用字符集:GBK和UTF8 2.

2016-06-19 21:48:00 7140

原创 数据库基础

数据库课程体系基础阶段:基本操作(增删改查),高级操作(视图,触发器,函数,存储过程)优化阶段:提高数据库效率,如索引,分表等部署阶段:搭建真实的环境系统,如服务器集群,负载均衡数据库基础什么是数据库? 数据库:database,存储数据的仓库。 数据库:高效的存储和处理数据的介质(介质主要是两种:磁盘和内存)。 数据库的分类? 数据库基于存储介质的不同,分为两类:

2016-06-11 15:08:13 695

原创 视差特效

1.1 界面初始化1.1.1 填充 ListView1.1.2 ListView 添加 Header1.2 下拉放大1.2.1 overScrollBy() 方法参数解析1.2.2 动态改变头布局的高度1.3 回弹动画效果1.1 界面初始化1.1.1 填充 ListView自定义 ParallaxListView 继承 ListViewpackage com.fighting.qqvie

2016-02-10 20:16:09 1701 1

原创 仿QQ侧滑面板(三)

1.5 状态更新及事件回调1.5.1 状态分析1.5.2 事件回调分析1.5.2 实现状态更新及事件回调1.6 触摸优化1.6.1 填充界面数据1.6.2 主面板触摸优化1.5 状态更新及事件回调1.5.1 状态分析拖拽的状态可以分为: 打开状态 关闭状态 拖拽状态 通过枚举定义这三种状态,且定义默认状态为关闭//默认状态为关闭private Status status =

2016-01-28 23:25:13 1141

原创 仿QQ侧滑面板(二)

1.3 结束动画1.3.1 跳转的结束动画1.3.2 平滑的结束动画1.4 伴随动画1.4.1 分解伴随动画1.4.2 实现伴随动画1.3 结束动画拖拽过程中当手指抬起时,需要实现一个打开,关闭面板的动画,结束动画可以在 onViewReleased()方法实现1.3.1 跳转的结束动画onViewReleased()方法在松手之后会被调用,此时可以做结束动画,结束动画只需要考虑需要打开

2016-01-28 23:23:12 760

原创 仿QQ侧滑面板(一)

1.1 实现最简单的拖拽1.1.1 自定义一个 DragLayout1.1.2 串连构造方法1.1.3 ViewDragHelper 简介1.1.4 创建 ViewDragHelper1.1.5 触摸事件转交1.1.6 处理回调事件1.1.7 DragLayout 布局到 xml1.2 限定拖拽范围1.2.1 onFinishInflate()介绍1.2.2 获取控件宽高1.2

2016-01-28 23:19:51 639

原创 android仿老式优酷菜单

1.2 自定义组合控件之优酷菜单 1.2.1 项目概述 1.2.2 优酷菜单 UI 1.2.3 优酷菜单业务逻辑实现 1.2.4 AnimUtil工具类的逻辑实现 1.2.5 知识点总结 1.2 自定义组合控件之优酷菜单1.2.1 项目概述首先,我们学习如何自定义一个组合控件,其中,优酷菜单是一个典型的自定义组合控件,它的效果图如图 1-1 所示: 图中由中间往外, 分别

2016-01-23 00:41:11 576

原创 Android自定义类似联系人列表的 快速索引控件

效果图思考将字母 A - Z 画出来处理字母的触摸事件提供使用的回调联系人汉字转成拼音按拼音排序分组(同一个拼音开头的为一组)将自定义的view和ListView绑定实现1. 绘制A-Z准备好A-Z 26个字母在onDraw方法里面计算每个字母的位置并绘制 private static final String[] LETTERS = n

2015-12-14 21:55:12 1487

原创 Android--MVP设计思想

声明:本文并非原创,整理于网络上的公开课内容简单的例子1. 定义一个Vu接口用来初始化view和返回view/** * 描述:主要用来初始化view 和 返回当前的view * 作者 mjd * 日期:2015/12/6 19:56 */public interface Vu { /** * 初始化view */ void init(LayoutIn

2015-12-07 21:30:08 826

原创 设计模式--代理模式【Proxy Pattern】

什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人(真实客户)能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。 比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理,表现在程序上时这样的: 先定义一种类型的女人: public interface KindWomen { //

2015-11-05 19:55:05 2029

原创 Android触摸事件分发机制

Android 中的事件分为按键事件和触摸事件,这里我们对触摸事件进行阐述。 Touch 事件是由一个 ACTION_DOWN,n个 ACTION_MOVE,一个 ACTION_UP 组成 onClick,onLongClick,onScroll 等事件。 Android 中的控件都是继承 View 这个基类的,而控件分为两种:一种是继承 View 不能包含其他控件的控件;一种是继承 Vi

2015-10-31 12:26:31 950

原创 设计模式--抽象工厂模式【 Abstract Factory Pattern】

声明:本文从网络书籍整理而来,并非原创。上一次工厂方法模式讲到女娲造人,人是造出来了,世界热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,Shit!忘记给人类定义性别了,那怎么办?抹掉重来,然后就把人类重新洗牌,准备重新开始制造人类。由于先前的工作已经花费了很大的精力做为铺垫,也不想从头开始了,那先说人类(Product 产品类)怎

2015-10-27 22:35:49 1729 4

原创 设计模式--适配器模式【 Adapter Pattern】

声明:本文从网络书籍整理而来,并非原创。适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电源电压不同,中国是 220V,日本是 110V,但是这个适配器能够把这些不同的电压转换为你需要的 36V 电压,保证你的笔记本能够正常运行,那我们在设计模式中引入这个适配器模式是不是也是这个意思呢?是的,一样的作用,两个不同接口,

2015-10-21 13:02:43 1459 2

原创 设计模式--单例模式【Singleton Pattern】

这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的对象:皇帝 中国的历史上很少出现两个皇帝并存的时期,是有,但不多,那我们就认为皇帝是个单例模式,在这个场景中,有皇帝,有大臣,大臣是天天要上朝参见皇帝的,今天参拜的皇帝应该和昨天、前天的一样(过渡期的不

2015-10-16 12:36:10 997 1

原创 设计模式--工厂方法模式【Factory Method Pattern】

声明:本文从网络书籍整理而来,并非原创。女娲造人(第一次尝试)女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空气是清新的,太美丽了,然后就待时间长了就有点寂寞了,没有动物,这些看的到都是静态的东西呀,怎么办? 别忘了是神仙呀,没有办不到的事情,于是女娲就架起了八卦炉(技术术语:建立工厂)开始创建人,具体过程是这样的:先是泥巴捏,然后放八卦炉里烤,再扔到地上成长,但是意外

2015-09-16 09:25:35 1660

原创 六大设计原则--开闭原则

开闭原则【Open Close Principle】定义 software entities like classes, modules and functions should be open for extension but closed for modifications. 一个软件实体应该对扩展开放,对修改关闭。 什么是开闭原则闭原则的定义已经非常明

2015-09-08 08:44:52 4943

原创 六大设计原则--迪米特法则【Low Of Demeter】

定义 迪米特法则也叫做最少知识原则(Least Knowledge Principle),指一个对象应该对其他对象有最少的了解,通俗的讲:一个类对自己需要耦合或者调用的类应该知道的最少,你类内部是怎么复杂、怎么的纠缠不清都和我没关系,那是你的类内部的事情,我只关心你提供的public方法,我可以去调用。迪米特法则包含以下四层意思:只和朋友交流。迪米特还有一个英文解释叫做“O

2015-08-23 07:50:50 6178 9

原创 六大设计原则--接口隔离原则【 Interface Segregation Principle】

声明:本文内容是从网络书籍整理而来,并非原创。定义第一种定义: Clients should not be forced to depend upon interfaces that they don’t use. 客户端不应该依赖它不需用的接口。第二种定义: The dependency of one class to another one should depend on th

2015-08-18 07:46:15 2013

原创 六大设计原则--里氏替换原则【Liskov Substitution Principle】

定义最正宗的定义: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a

2015-08-10 09:29:02 3153

原创 六大设计原则——单一职责原则【Single Responsibility Principle】

声明:本文内容是从网络书籍整理而来,并非原创。用户管理的例子先看一张用户管理的类图: 再看一眼上面的图,思考:这样合理吗?这个接口是一个很糟糕的设计! 用户的属性和行为竟然混合在一起!!!正确的做法是把用户的信息抽取成一个业务对象(Bussiness Object,简称 BO),把行为抽取成另外一个接口中,我们把这个类图重新画一下: 这样划分成了两个接口,IUserBO 负责用户的属性,I

2015-08-04 16:33:17 2546 1

原创 Android Studio三种方式导入外部资源 以及 报错处理

android studio提供了三种方式导入外部资源:1. Library dependency – 在线添加、需联网下载2. File dependency – 从本地添加一些jar包(要先将jar包拷贝到项目的libs文件夹下)3. Module dependency – 从本地添加带有源码的库工程(要先 import Moudle 将库工程导入项目中) 其中第三种方式导入会报一些错误,这里

2015-07-30 10:13:59 15031 2

原创 Android 手机影音 开发过程记录(六)

前一篇已经将音乐播放及切换的相关逻辑弄好了,今天主要理一下剩余的部分,包括: 1. 自定义通知栏的布局及逻辑处理 2. 滚动歌词的绘制 3. 歌词解析效果图 通知栏自定义布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi

2015-07-12 07:53:52 2020 25

原创 Android 手机影音 开发过程记录(五)

前一篇已经将视频模块弄好了,今天主要理一下音乐这一模块,包括:通过ContentProvider获取音乐列表数据音乐播放界面的动画和布局音乐播放的界面AudioPlayerActivity和AudioPlayService交互。(实现播放、暂停、上下一首、播放模式的切换)效果图 结构图获取音乐列表数据分析:这里还是通过内容提供者ContentProvider去获取。前面获取视频时没有将为

2015-07-09 07:38:09 1165 1

原创 Android 手机影音 开发过程记录(四)

前一篇已经将视频播放页面的布局弄好了,这一篇主要来处理播放页面的各种逻辑(播放、暂停、上/下一个视频、音量、进度…),逻辑比较多,一点一点贴代码。顶部布局的逻辑:显示系统时间,时间是一秒一秒更新的,所以可以通过循环发消息的方法来更新系统时间。相关代码如下:private static final int UPDATE_SYSTEM_TIME = 0;//更新系统时间的消息//主线程收到消息后,继续

2015-07-03 08:49:53 1336 1

原创 Android 手机影音 开发过程记录(三)

前一篇已经将MainActivity编写好了,其中主页面的ViewPager控件嵌入的是两个fragment,分别是VideoListFragment 和 AudioListFragment。今天主要理一下视频这一模块,包括:通过ContentProvider获取视频列表数据(使用AsyncQueryHandler异步获取)自定义播放页面播放页面逻辑处理(播放、暂停、切换、音量等)效果图结构

2015-06-29 14:32:39 1691

原创 Android 开发规范

开发规范,对于初学者可能不会太在意,但真正项目中,规范尤为重要。一个好的开发规范,可以说是一种艺术,不仅仅有利于后期维护,对代码的可读性,美观性都有影响。下面整理了android项目开发相关的规范。个人知识有限,还望大家补充。命名规范创建项目时的项目名称:最好是英文,在项目做完签名打包apk的时候,省去一些麻烦。(中文也不影响,但最后要改过来,不然不好打包)包名的组织:为防止应用程序在手机中安

2015-06-28 17:31:35 758

原创 Android 手机影音 开发过程记录(二)

前一篇已经将SplashActivity编写好了,这篇主要梳理一下主页面MainActivity。包括:实现ViewPager上方的头布局Tab的高亮和缩放动画;实现指示线的随手指移动而移动的效果基类的编写一般项目开发中,会涉及到很多的Activity和Fragment的使用,而且我们在这些activity或者fragment中操作的方法大致一样:初始化view,初始化data,初始化lis

2015-06-27 10:35:43 1207

原创 Android 手机影音 开发过程记录(一)

开发工具Android StudioJDK 1.8版本兼容Android 4.1及以上效果图 主要有视频和音乐功能模块:视频模块:视频列表-将手机sd卡的视频列出来自定义播放器界面万能播放器(能播放主流格式的视频)视频播放界面一些细节和逻辑的处理音乐模块:音乐列表-将手机sd卡的音乐列出来在Service中播放音乐播放模式的切换和逻辑处理自定义布局的通知歌词的解

2015-06-19 19:50:55 1631 8

原创 Android greenDao开源数据库框架

之前,android的数据库部分,自己一直傻傻地按照最原始的方式:写一个类比如MyDbHelper去继承SQLiteOpenHelper,然后建库,建表,建字段,然后再创建一个类MyDbDao去实现操作数据库的增删改查的方法。直到在博客上看到大牛写的 LitePal 的使用,才发现原来数据库部分可以这么简化。LitePal的详细地使用可以参考 http://blog.csdn.net/guol

2015-06-15 11:43:13 680

原创 Android 自定义侧滑菜单

效果图思考可以看出滑动的是两个layout,所以自定义的侧滑控件应该继承ViewGroup,实现onMessure()和onLayout()方法,为了简化操作,可以继承android系统已经实现好的ViewGroup的子类 —— FrameLayout,这样就不用自己去测量了。onLayout()方法中,初始化的时候,要将侧边菜单的布局放到屏幕左边看不到的地方。menuView.layout(-

2015-06-10 13:56:15 686

原创 Android 自定义ListView 实现下拉刷新 上拉加载功能

效果图思考Listview是viewGroup的子类,它本身提供了方法addHeaderView(View view),addFooterView(View view)去添加头布局和底布局,所以我们只要监听它的onTouchEvent方法,判断头布局 底布局的显示状态。头布局(headerView)默认的话,得隐藏。先获取到头布局的高度int headerViewHeight = headerV

2015-06-08 11:18:59 829

原创 Android 自定义ToggleButton

效果图思考因为是自定义view,不是viewGroup,所以在进行了onMeasure()的测量方法之后,所以不需要onLayout方法,但是必须实现onDraw()方法程序如何设计呢?需要提供设置ToggleButton开关背景图片的方法需要提供设置ToggleButton滑动背景图片的方法需要提供设置ToggleButton开关状态的方法需要提供设置ToggleButton状态改变的监

2015-06-06 13:00:03 1013

原创 Android 下拉选择

效果图思考要实现以上效果,首先控件是:一个EditText,一个下拉的箭头ImageView,一个listview,还有让listview悬浮在文本框下方的PopupWindow当listview数据被删除时,需要去判断,如果listview的高度小于popupWindow的指定高度,则更新popupWindow的高度为listview的高度,当没有数据时,将下拉箭头置为不可见。步骤布局主页

2015-06-05 16:27:31 1199

原创 Android 广告轮播效果(伪无限循环)

效果图思考要实现上面的效果,布局上使用viewpager控件,还需一个textview用来显示文字,一个LinearLayout用来存放动态创建的小圆点。用handler隔几秒发送一个消息来控制图片的轮播切换。要使在最后一张图片继续左滑时,跳到第一张图片上,可以将viewpager适配器中的getCount()方法中返回最大的整数,在instantiateItem中通过对list的长度取模来设

2015-06-04 12:00:06 1213 1

原创 Android 屏幕适配

android屏幕适配的整体思路 开发前,选取一款主流屏幕进行开发,比如现在的1280*720; 开发过程中,遵循一些原则:不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px dp和px的关系:dp = px/设备密度 320*480的设备密度为1.0, 480*800的设备密度为1.5, 128

2015-06-03 10:10:52 532

原创 Android 图片的三级缓存 及 图片压缩

android默认给每个应用只分配16M的内存,所以如果加载过多的图片,为了防止内存溢出,应该将图片缓存起来。图片的三级缓存分别是: 内存缓存 本地缓存 网络缓存 其中,内存缓存应优先加载,它速度最快;本地缓存次优先加载,它速度也快;网络缓存不应该优先加载,它走网络,速度慢且耗流量。三级缓存的具体实现网络缓存思路:根据图片的url去加载图片在本地和内存中

2015-06-02 10:38:54 2587 2

空空如也

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

TA关注的人

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