- 博客(48)
- 资源 (7)
- 收藏
- 关注
原创 仿QQ锁屏界面效果
现在新版的QQ Android客户端有个新功能,就是在锁屏界面也可以接收消息,并且接收到的消息可以显示在锁屏界面,双击之后可以进入QQ,下面简单实现这个功能。当然正式项目中的运用还是非常复杂的,这仅仅是一个简单的Demo,可以作为参考。直接上代码:MainActivity.javapublic class MainActivity extends Activity {
2014-12-23 15:23:47 2171 1
原创 Java最大公约数和最小公倍数
最大公约数有下面两种方法:辗转相除法:又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公约数的算法。辗转相减法:即尼考曼彻斯法,其特色是做一系列减法,从而求得最大公约数。以下为Java代码:public class JavaBase{ static public int gcd1_1(int x, int y) //非递
2014-12-11 15:46:19 4710
原创 Java实现二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以
2014-12-10 17:36:26 1033
原创 Android PullToRefresh上拉和下拉刷新
Github链接:https://github.com/chrisbanes/Android-PullToRefresh1. 设置Listview layout文件中定义PullToRefreshListView Xml代码com.jackie.PullToRefreshListView android:id="@+id/list_vi
2014-12-09 14:55:20 2183
原创 Android 调用Market搜索自己的软件
现在很多软件中都有设置的界面,设置界面一般都是软件更新关于和本产品的介绍等等,还有一个就是评分,点击后打开应用市场,比如应用宝、360手机助手,会调用这些发布市场的App,打开后直接到自己发布的App下。代码实现如下:[java] view plaincopyprint?Intent intent = new Intent(Intent.ACTION
2014-12-09 14:21:48 1402
原创 Android实现网易新闻客户端侧滑菜单(二)
前面已经讲过通过三方开源库SlideMenu来实现这种效果,请参考Android实现网易新闻客户端侧滑菜单(一)今天通过自定义View来实现这种功能代码如下:SlideMenu.javapackage com.jackie.slidemenu.view;import android.content.Context;import android.graphics.Canvas;
2014-12-09 14:03:30 2258
转载 Android SwipeRefreshLayout 官方下拉刷新控件介绍
SwipeRefreshLayout在v4包下,对应的v4Demo中也有相应的例子。如果没有请下载最新support-v4SwipeRefreshLayout 只能有一个直接子View,可能是一个ListView或一个Layout或其他需要刷新的组件。setOnRefreshListener 用于监听刷新的动作。SwipeRefreshLayout 下拉,就会有刷新的效
2014-12-08 13:43:39 6478
原创 Android 防止短时间内重复点击
[java] view plaincopyprint?/** * 处理在短时间内多次点击同一组件,界面异常 */ public class MultipleClickProcess implements OnClickListener{ private boolean flag = true; private sync
2014-12-05 18:11:20 1391
原创 Android Widget 小部件(三) 在Activity中添加Widget
[java] view plaincopyprint?package com.jackie.ui; import static android.util.Log.d; import android.app.Activity; import android.appwidget.AppWidgetHost; import android.
2014-12-05 17:43:53 1285
原创 Android Widget 小部件(二) 使用configure
在添加Widget之前需要做一些处理操作,可以使用 配置活动在上一篇的实现基础上,加上配置活动(configure=activity)。这时添加Widget时,会先打开一个Activity,进行配置操作,[html] view plaincopyprint?appwidget-provider .... a
2014-12-05 17:41:05 1162
原创 Android Widget 小部件(一) 简单实现
创建Widget的一般步骤:在AndroidManifest.xml中[html] view plaincopyprint?receiver android:name="com.jackie.ui.TimerWidgetProvider"> intent-filter>
2014-12-05 17:18:35 1030
原创 Java实现快速排序
思路:经过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此 方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。具体操作方法如下:
2014-12-05 16:45:21 862
原创 Java中关键字continue、break和return的区别
Java中关键字continue、break和return的区别continue:跳出本次循环继续下一次循环break: 跳出循环,继续执行循环外的函数体return: 跳出整个函数体有代码才有真相:public class JavaBese { public static void main (String[] args) { int j = 3;
2014-12-05 14:32:54 51740 2
原创 Java使用LinkedList模拟一个堆栈或者队列数据结构
用Java模拟一个堆栈或者队列数据结构。首先得明白堆栈和队列的数据结构:堆栈:先进后出队列:先进先出LinkedList中刚好有addFirst()和addLast()方法。[java] view plaincopyprint?public class Stack { public static void m
2014-12-05 14:02:48 2687
原创 使用AsyncTask异步加载图片
主要看看AyncTask如何使用:MainActivity.java[java] view plaincopyprint?public class MainActivity extends Activity { private static final String TAG = "MainActivity"; priv
2014-12-05 13:28:13 5038
原创 ListView滚动到底部自动加载数据
在Android中有很多时候会选择用ListView加载数据,有的是分批加载,比如每次加载20条,100条就要加载5次,如果一次性加载100条,ListView加载就会变慢,如果是有图片的话,一是浪费流量,二是item中带图片会出现错位的问题l,ListView加载数据目前好多App的做法1. 分批加载,滑动到底部自动更新2. 滑动到底部,手动的点击加载更多3. 下拉刷新 + 底部加载
2014-12-05 10:30:10 12774 8
原创 Android实现底部菜单Tab
以前在我的博客里面写过模仿网易新闻客户端顶部菜单Tab的文章http://blog.csdn.net/shineflowers/article/details/41349703现在使用静态的Fragment来实现底部Tab的功能: xmlns:tools="http://schemas.android.com/tools" android:layout_widt
2014-12-04 18:25:35 3529
原创 Android实现网易新闻客户端侧滑菜单(一)
Android中很多产品都采用侧滑菜单的展现形式,采用这种展现形式1:能把更多的展现内容都存放在菜单中2:设计上也能体现出视觉效果先看下360手机助手,如图:现在这种交互方式越来越流行了,虽然这种交互方式可以通过ViewGroup的方式来实现,但是用三方开源库更简单。SlidingMenu:SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右
2014-12-04 17:46:36 4289
原创 JSON解析
Android开发中,与服务器交互80%是通过json方式传输数据,JSON 也是基于纯文本的数据格式,JSON具有跨平台的优势,相对xml,json解析起来更方便,简单,解析数据所消耗的流量也会比xml少,而且json有一些好的第三方库文件,已为开发者封装好了。JSON语法规则:数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSO
2014-12-04 17:13:52 1179
原创 C语言学习入门 (八) 结构体和枚举
结构体它允许内部的元素是不同类型的结构体的定义//结构体类型:struct Person{ char name[20]; //char *name; int age; float weight;};//定义一个结构体变量,定义变量时才分配存储空间structPerson person; //与
2014-12-04 17:04:56 872
原创 C语言学习入门 (七) 变量与函数,static和extern关键字
局部变量1> 定义:在函数内部定义的变量,称为局部变量。形式参数也属于局部变量。2> 作用域:局部变量只在定义它的函数内部有效,即局部变量只有在定义它的函数内部使用,其它函数不能使用它。全局变量1> 定义:在所有函数外部定义的变量,称为全局变量。2> 作用域:全局变量的作用范围是从定义变量的位置开始到源程序结束,即全局变量可以被在其定义位置之后的其它函数所共
2014-12-04 17:04:04 918
原创 C语言学习入门 (六) 预处理指令:宏、条件编译、文件包含
预处理指令1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯
2014-12-04 17:02:19 954
原创 统计一个二进制字符串连续出现0或者连续出现1的最大次数
给定一个二进制的字符串,统计连续出现0或者连续出现1的最大次数。由于需要取出最大次数,所以一旦出现连续0的时候,需要将代表出现连续1的变量置空,反之亦然。还需要注意的是,我们要将每次连续出现0和1的次数各自用变量保存起来。详细代码如下:
2014-12-04 15:38:17 5084
原创 递归与非递归遍历文件目录
递归遍历目录的缺点:遇到多层级目录时,层级越多,堆栈的负荷越大。[java] view plaincopyprint?import java.io.File; import java.util.LinkedList; /* * 采用非递归方式遍历目录及其子目录的文件 */ public class Proce
2014-12-04 13:37:53 2221
原创 SVN文件状态标记含义
svn status打印五列字符,紧跟一些空格,接着是文件或者目录名。第一列告诉一个文件的状态或它的内容,返回代码解释如下:A item文件、目录或是符号链item预定加入到版本库。C item文件item发生冲突,在从服务器更新时与本地版本发生交迭,在你提交到版本库前,必须手工的解决冲突。D item文件、目录或是符号链item预定从版本库中删除。M item
2014-12-04 11:29:01 3348
原创 SVN一些常用命令
SVN 是什么?SVN 是开源的版本控制系统。比CVS更多的特性。一个更好的 CVS?因此SVN 具有大部分CVS拥有的特性。不仅仅是文件受控,目录也加入版本控 制。复制,删除,重命名这些操作都是受控 的。特殊作用的元数据(属性)。提交事务原子性。提交完成之前任何一 个部分都不会正真生效。版本号基于提交,而不是基于文件。提交时的log message也是依附于提交的那个版本。创建分支和标记
2014-12-04 11:16:08 1505
原创 猴子吃桃问题
[java] view plaincopyprint?/* * 猴子吃桃 * 每天吃余下总量的一半加1个,直至第10天吃完后,还余下1个,求原来总共有多少个 */ public class Monkey { public static void main(String[] args) { int n =
2014-12-03 17:49:41 940
原创 C语言学习入门 (五) 指针
直接引用char a;a = 10;程序内部是怎么操作的呢?其实,程序对变量的读写操作,实际上是对变量所在的存储空间进行写入或取出数据。就上面的代码而言,系统会自动将变量名a转换为变量的存储地址,根据地址找到变量a的存储空间,然后再将数据10以2进制的形式放入变量a的存储空间中。 通过变量名引用变量,由系统自动完成变量名和其存储地址之间的转换,称为
2014-12-03 17:14:47 972
原创 C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
字符串简介* 在Java中,一个字符串可以用String类型来存储String s = "MJ";C语言中没有String这种类型。其实字符串就是字符序列,由多个字符组成,所以在C语言中,我们可以用字符数组来存储字符串。* 字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志'\0'。'\0'是一个ASCII
2014-12-03 17:14:08 1395
原创 C语言学习入门 (三) sizeof 函数、内存地址、数组
sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。sizeof(10);char c = 'a';sizeof(c);sizeof(float);地址1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的
2014-12-03 17:13:06 1310
原创 C语言学习入门 (二) 语句和运算符
C语言的基本语句跟Java中的差不多循环语句(do while、while、for)条件语句(if 、if-else、switch)goto语句 (比如在循环外 定义一个标记 Exit:; 在循环内可以 用 goto Exit;跳出循环)[plain] view plaincopyprint?for(int i = 0; i
2014-12-03 17:11:13 972
原创 C语言学习入门 (一) 编译、链接、关键字、数据类型、printf函数
参考链接:http://blog.csdn.net/jjwwmlp456/article/details/41676225编译文件:cc -c one.c two.c 生成.o目标文件链接文件:cc one.o two.o 默认生成 a.out 执行文件指定生成的可执行文件名 cc -o one one.o 连续编译、链接:cc one.c
2014-12-03 17:10:10 1516
原创 监听Settings的值的变化
在开发Android应用的时候有时需要监听Settings下面的值(如蓝牙、飞行模式...),这个时候可以通过ContentObserver 来监听值的变化。 1.首先自定义一个类继承ContentObserver。在onChange()方法里面再次去获取Settings的值。?1234567
2014-12-02 18:52:31 10946
原创 Java 实现原型(Prototype)模式
[java] view plaincopyprint?public class BaseSpoon implements Cloneable {//spoon 匙, 调羹 String name; public String getName() { return name; }
2014-12-02 18:33:55 2452
原创 Java 实现装饰者(Decorator)模式
在Java中,io包下的很多类就是典型的装饰者模式的体现,如:new BufferedOutputStream(OutputStream out)new BufferedInputStream(InputStream in);new PrintWriter(OutputStream out)new FilterReader(Reader in)装
2014-12-02 18:32:15 1128
原创 Java 实现观察者(Observer)模式
1. Java自带的实现类图[java] view plaincopyprint?/** * 观察目标 继承自 java.util.Observable * @author stone * */ public class UpdateObservable extends Observable
2014-12-02 18:30:39 1033
原创 Android DrawerLayout抽屉效果
官网guide:http://developer.android.com/training/implementing-navigation/nav-drawer.html官网示例:NavigationDrawer.zip android.support.v4.widget.DrawerLayout 抽屉layout。该widget只能实现从左向右、从右向左 o
2014-12-02 18:00:28 1663
原创 Java 实现代理(Proxy)模式
参考链接: 类图[java] view plaincopyprint?/** * 游戏者接口 * @author stone * */ public interface IGamePlayer { // 登录游戏 public void login(String
2014-12-02 16:38:44 1291
原创 Java 实现抽象工厂模式
抽象工厂模式里面有几个概念:抽象工厂、实体工厂、抽象产品、实体产品抽象工厂:定义创建产品的抽象方法实体工厂:具体的创建哪种产品抽象产品:一个接口或基类实体产品:实现具体功能,或派生类图[java] view plaincopyprint?//抽象产品1 public int
2014-12-02 16:17:05 879
原创 Java实现简单的工厂模式
工厂模式 属于创建型模式简单工厂模式类图通过一个工厂类,以一个条件来创建对应的对象[java] view plaincopyprint?//业务功能 public interface ICalculation { double getResult(double numA, double n
2014-12-02 16:13:46 840
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人