自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (6)
  • 收藏
  • 关注

转载 Repository模式

Repository模式,使用泛型Repository接口并不太合适,因为Repository接口是提供给Domain层的操作契约,不同的entity对于Domain来说可能有不同的操作约束,比如User可能不应该被删除,bookOrder可能不应该被修改,也就是说domain层根本就不应该能调用_repository.Delete(user),_repository.Update(bookOrd

2015-12-20 17:42:51 1891

原创 android Touch事件

View的Touch事件,在于三个方法onInterceptTouchEvent,onTouchEvent,dispatchTouchEvent事件分发:dispatchTouchEvent事件拦截:onInterceptTouchEvent事件处理:onTouchEvent上层view为子view,下层view为父view当只要有onTouch

2015-12-13 16:51:12 515

原创 重构(一)

重构的原因:代码拓展困难,重复代码多,逻辑复杂,不容易理解,在持续迭代的项目开发中可测试性丧失。重构的目的;显然就是解决上述的问题目前在项目中遇到的一个案例;项目中用到一个开源控件PullToRefresh,在版本迭代中,使用方式是需要调用的页面直接在布局文件中直接调用,然后在Actvity和fragment中获取这个View,设置监听等。引起的问题;在布局中需要重

2015-12-06 17:12:55 491

原创 android Picker选择器

定义了一个通用的base adapterpackage com.whuthm.picker;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;/** * 基类

2015-11-15 15:46:10 1783

原创 android 一些通用view(2)

TagLayoutimport android.content.Context ;import android.content.res.TypedArray ;import android.util.AttributeSet ;import android.util.Log ;import android.util.SparseArray ;import android.view.V

2015-11-01 16:10:01 504

原创 android 一些通用View

1. DividerLineLinearLayoutimport android.content.Context ;import android.content.res.TypedArray ;import android.graphics.Canvas ;import android.graphics.drawable.Drawable ;import android.util.At

2015-10-31 15:29:03 349

原创 积累

1.service和threadService 与 Thread 的区别很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2). Serv

2015-10-25 21:35:55 325

原创 android 数字选择器中文字颜色透明度渐变的实现

首先看android View源码中渐变的实现draw方法boolean horizontalEdges = (viewFlags & FADING_EDGE_HORIZONTAL) != 0; boolean verticalEdges = (viewFlags & FADING_EDGE_VERTICAL) != 0;这个需要调用setVerticalFadingE

2015-10-11 17:05:55 2251

原创 android 仿联系人UI

效果图如下:三个要点:1.排序:包括汉字,字母,特殊符号2.listview的实现:自定义adapter,以及listview的效果实现3.侧边字母集的实现1.排序实现使用android源生中联系人排序代码,sortkey,关键在于汉字转拼音如下:/* * Copyright (C) 2011 The Android Open Source

2015-09-27 17:24:53 1222

原创 android mvp

MVP(Model View Presenter)模式是著名的MVC(Model View Controller)模式的一个演化版本,目前它在Android应用开发中越来越重要了。什么是MVP?MVP模式可以分离显示层和逻辑层,所以功能接口如何工作与功能的展示可以实现分离,MVP模式理想化地可以实现同一份逻辑代码搭配不同的显示界面。首先要澄清就是MVP不是一个结构化的模式,

2015-09-05 16:29:11 604

原创 android Dialog和EditText

1.Dialog全屏或者固定宽度public void installContent() { /* We use a custom title so never request a window title */ mWindow.requestFeature(Window.FEATURE_NO_TITLE); //输入法弹出//

2015-08-22 14:08:28 2133 1

原创 android 相机图库调用以及裁剪

相机调用private void selectPicFromCamera() { mOutputFile = getPicFile(getActivity()); Log.e(TAG, "selectPicFromGallery : " + mOutputFile.getPath() + " "

2015-08-16 11:54:40 664

原创 android 日历(1)

CalendarController类:计算日历的一些常用方法package com.qingqing.base.view.calendar;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.Locale;/** * @author whuthm

2015-08-09 15:08:06 620 2

原创 android fragment(2)

fragment之间传值1.从activity传值给fragment或者从fragment传值给fragment(1)构造函数中传值或者通过set方法传值new AFragment("data");注意fragment一定要有一个无参数的构造函数,因为在恢复fragment的时候会走无参数的构造函数所以通过此种方式传值会有一个缺点,当恢复fragment的时候,没有带上数据参数

2015-08-08 17:21:13 705 1

原创 android 沉浸式状态栏(2)

上篇介绍api21以上的沉浸式状态栏,这篇介绍状态栏以及导航栏使用DecorView的setSystemUiVisibility方法package com.whuthm.immersive;import android.os.Build;import android.os.Bundle;import android.util.Log;import android.view

2015-07-26 16:45:34 855

原创 android 沉浸式状态栏

针对5.0(api21)首先定义主题 #4876FF #4876FF @android:color/white #ffff5722 在values-v21的styles.xml中定义

2015-07-19 19:32:29 848 1

原创 Android fragment

fragment的生命周期定义一个BaseFragment添加log来显示fragment的生命周期package com.example.fragment;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.an

2015-07-12 16:15:59 468

原创 android ActionBar(2)

Tab的使用Tab的使用设置Tab模式final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);添加tabactionBar.addTab(actionBar.newTab().setText("Tab

2015-07-12 16:03:05 467

原创 通用模板

1.ListView和GridView的Adapter自定义的BaseAdapter类import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;/** * 基

2015-06-28 18:07:04 411

转载 面向对象原则

1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。2) Liskov Substituition Principle(LSP),里氏代换原则,很严格的原则,规则是“子类必须能够替换基类,

2015-06-22 17:44:21 405

原创 android ActionBar

ActionBar学习笔记(1)XML文件和手动添加Menu ItemXML文件中添加,然后在activity的onCreateOptionsMenu方法中引用getMenuInflater().inflate(R.menu.main, menu);<menu xmlns:android="http://schemas.android.com/apk/res/android"

2015-06-21 19:32:27 537

原创 android 日历动画的实现

华为P8日历的截图目前仅实现动画,内容没有填充,效果如下图布局分析承载日历网格的是一个ViewPager,每天的日历活动是一个ListView,需要实现的效果是,在listview区域向上滑动,viewpager也跟着滑动,滑动后viewpaer只留下一行,listview滑动到这一行的下面。难点在于拦截listview的滑动事件。实现分析使用Cal

2015-06-21 19:08:20 1533

原创 Head First---命令模式

命令模式属于对象的行为模式,它把一个请求或者操作封装在一个对象中,以便使用 不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销操作。命令模式涉及到五个角色:(1)client:这个客户负责创建一个ConcreteCommand,并设置其接受者。(2)Invoker:这个调用者持有一个命令对象,并在某个时间点调用命令对象的execute方法,将请求付诸实行。(3)Rece

2015-06-07 19:52:15 517

原创 C积累

折半查找//while循环中使用了两次int binsearch(int x, int v[], int n) {    int low, high, mid;    low = 0;    high = n - 1;    while(low         mid = (low + high) / 2;        if(v[mid] == x) {   

2015-05-24 22:12:37 347

原创 移动app网址收藏

这几篇文章如果没读过的话,花些时间看下,对接下来做移动app有很多值得借鉴的地方。 携程App的网络性能优化实践http://www.infoq.com/cn/articles/how-ctrip-improves-app-networking-performance  手机QQ的移动网络实践之路http://www.infoq.com/cn/presentations

2015-05-21 13:18:13 556

原创 指针

char amessage[] = "now is the time";char *pmessage = "now is the time";区别:数组amessage分配一段存储空间,指向同一个存储空间,而且始终指向这段地址,而这段存储空间放“now is the time”这段字符串。而指针pmessge指向字符串常量"now is the time"的地址,这个地址可以改变,

2015-05-17 17:33:18 390

原创 JNI

windows下使用cygwin编译,cygwin安装教程省略,需要配置 环境变量在eclipse中创建头文件在jni/目录下javah -classpath ../bin/classes -jni com.example.jni.Test根据此命令创建头文件,然后在创建cpp文件在jni目录下$NDK/ndk-build生成so文件

2015-05-10 19:53:25 500

原创 android 百度API定位以及获取天气

1.申请百度AK申请地址:http://lbsyun.baidu.com/apiconsole/key在应用中的manifest申明<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="dP15rUSoUIwDll5qYj71pNOn" />2.注册

2015-04-26 15:16:36 3937 2

原创 android 定时器

定时器的三种方法。(1)Handler//开始定时 public void startTimer() { //移除MSG_TIMING mHandler.removeMessages(MSG_TIMING); Message msg = Message.obtain(); msg.what = MSG_TIMING; msg.arg1 = TYPE_START;

2015-04-19 16:51:50 459

原创 Linux 文件权限

在linux文件系统中,每一个文件或者目录都有访问权限,此权限决定了谁能访问以及如何访问这些文件和文件目录。用命令ll即可查看文件对应的权限:"drwxr-xr-x"此表示文件的权限,有十个字符,第一个字符代表文件的类型,第2-4字符代表文件所有者的权限,第5-7字符代表文件所有者所在用户组访问的权限,第8-10字符代表其他用户的访问权限。文件类型:_:普通文件

2015-04-12 10:53:03 1127

原创 android launcher滑屏动画分析

流程:实现方式:不断的重绘中,不断的重新设置Matrix和Canvas,来实现动画。 Matrix几种函数介绍:(1)setPolyToPoly(float[]src, int srcIndex, float[]dst, int dstIndex, int pointCount)此函数表示从src到dst的点对点的映射,例如点(0,0),(10,0),(10

2015-04-06 11:29:44 1289

原创 vi

功能最强在的编辑器——vivi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,  或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、  游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi

2015-04-06 10:56:59 365

原创 android scroller

一、scrollTo与scrollBy的区别 (1)scrollTo的源码   /**    * Set the scrolled position of your view. This will cause a call to    * {@link #onScrollChanged(int, int, int, int)} and the view will be   

2015-03-29 12:44:22 406

原创 android 图像缩放

1.ImageView的ScaleTypeImageView是Android中的基础图片显示控件,该控件有个重要的属性ScaleType,这个属性在一定程度上可以控制图片显示的缩放。Launcher中AppWidget的preview显示是通过ImageView显示,而且每个AppWidget的preview大小可能不一样,而给定的显示区域大小是一样的,故通过ScaleType属性来控制pre

2015-03-22 11:15:45 1040

原创 android 循环自定义View

效果:固定的子view个数,循环滑动,第一个子View向左滑即滑到最后一个子View,最后一个子View向后右滑即滑到第一个子View效果图如下:

2015-03-13 19:51:50 1128

原创 android Binder机制

一、Bindr框架Binder是一种架构,这种架构提供了服务器端口、Binder驱动、客户端接口三个模块。如下图:客户端:客户端通过Ixxx.Stub.asInterface()来获得代理,同时将BinderProxy传给Proxy对象,其中BinderProxy即为要获得的mRemote。Binder驱动:通过获得的mRemote引用,调用transact()方法,向远程

2015-03-01 17:01:34 575

原创 android进程间通信(远程服务aidl,客户端)

上一篇已经介绍完服务端的创建,在此基础上创建客户端来实现进程间通信。客户端可以看到客户端的包(com.hm.aidl)下的文件和服务端的一样,文件和包名一定要相同。布局文件很简单:四个button,负责bind服务,注册回调,获取数据<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

2015-03-01 15:47:20 442

原创 android进程间通信(远程服务aidl,服务端)

android进程间通信,使用service,调用bindService来绑定服务,本例实现双向通信。服务端

2015-03-01 15:29:28 616

原创 平行四边形的效果实现

要实现的效果图如下:实现此效果的第一思路是使用Path 和canvas实现,path来规定平行四边形。实现如下布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

2015-02-08 15:41:59 6216 1

原创 类似NumberPicker的效果实现

最近在做电视项目,关于TV搜台,当搜台时,搜台频率会变化,需要一个数字滚动的效果。如效果图:此效果实现比numberpicker简单很多,不需要处理滑动事件,只需要相应按键事件或者其他触发滚动事件。先来看布局文件main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

2015-01-31 16:48:11 842

huangli.db

2000~2036年万年历宜忌事项数据库,是.db格式,可以直接导入代码直接使用的数据库;也可以在电脑中安装SQlite export 工具打开查看

2019-08-27

android循环view的实现

android,循环自定义view的实现

2015-03-13

android进程间通信

android使用aidl实现进程间通信,而且是双向通信

2015-03-01

平行四边形的效果实现

使用ShapeDrawable、shape和canvas实现平行四边形的效果

2015-02-08

android ListView-选中项固定在某一项

ListView的一种特定效果,上下移动时选中项固定在某一项,而且伴随有动画。

2014-10-31

android 十字架效果实现(水平和垂直滑动)

一个十字架的效果实现,可以水平方向和垂直方向滑动。

2013-10-18

空空如也

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

TA关注的人

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