- 博客(65)
- 资源 (6)
- 收藏
- 关注
转载 Repository模式
Repository模式,使用泛型Repository接口并不太合适,因为Repository接口是提供给Domain层的操作契约,不同的entity对于Domain来说可能有不同的操作约束,比如User可能不应该被删除,bookOrder可能不应该被修改,也就是说domain层根本就不应该能调用_repository.Delete(user),_repository.Update(bookOrd
2015-12-20 17:42:51
1953
原创 android Touch事件
View的Touch事件,在于三个方法onInterceptTouchEvent,onTouchEvent,dispatchTouchEvent事件分发:dispatchTouchEvent事件拦截:onInterceptTouchEvent事件处理:onTouchEvent上层view为子view,下层view为父view当只要有onTouch
2015-12-13 16:51:12
560
原创 重构(一)
重构的原因:代码拓展困难,重复代码多,逻辑复杂,不容易理解,在持续迭代的项目开发中可测试性丧失。重构的目的;显然就是解决上述的问题目前在项目中遇到的一个案例;项目中用到一个开源控件PullToRefresh,在版本迭代中,使用方式是需要调用的页面直接在布局文件中直接调用,然后在Actvity和fragment中获取这个View,设置监听等。引起的问题;在布局中需要重
2015-12-06 17:12:55
528
原创 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
1837
原创 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
538
原创 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
371
原创 积累
1.service和threadService 与 Thread 的区别很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2). Serv
2015-10-25 21:35:55
362
原创 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
2324
原创 android 仿联系人UI
效果图如下:三个要点:1.排序:包括汉字,字母,特殊符号2.listview的实现:自定义adapter,以及listview的效果实现3.侧边字母集的实现1.排序实现使用android源生中联系人排序代码,sortkey,关键在于汉字转拼音如下:/* * Copyright (C) 2011 The Android Open Source
2015-09-27 17:24:53
1264
原创 android mvp
MVP(Model View Presenter)模式是著名的MVC(Model View Controller)模式的一个演化版本,目前它在Android应用开发中越来越重要了。什么是MVP?MVP模式可以分离显示层和逻辑层,所以功能接口如何工作与功能的展示可以实现分离,MVP模式理想化地可以实现同一份逻辑代码搭配不同的显示界面。首先要澄清就是MVP不是一个结构化的模式,
2015-09-05 16:29:11
642
原创 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
2180
1
原创 android 相机图库调用以及裁剪
相机调用private void selectPicFromCamera() { mOutputFile = getPicFile(getActivity()); Log.e(TAG, "selectPicFromGallery : " + mOutputFile.getPath() + " "
2015-08-16 11:54:40
722
原创 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
649
原创 android fragment(2)
fragment之间传值1.从activity传值给fragment或者从fragment传值给fragment(1)构造函数中传值或者通过set方法传值new AFragment("data");注意fragment一定要有一个无参数的构造函数,因为在恢复fragment的时候会走无参数的构造函数所以通过此种方式传值会有一个缺点,当恢复fragment的时候,没有带上数据参数
2015-08-08 17:21:13
742
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
917
原创 android 沉浸式状态栏
针对5.0(api21)首先定义主题 #4876FF #4876FF @android:color/white #ffff5722 在values-v21的styles.xml中定义
2015-07-19 19:32:29
890
原创 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
506
原创 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
500
原创 通用模板
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
447
转载 面向对象原则
1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。2) Liskov Substituition Principle(LSP),里氏代换原则,很严格的原则,规则是“子类必须能够替换基类,
2015-06-22 17:44:21
438
原创 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
592
原创 android 日历动画的实现
华为P8日历的截图目前仅实现动画,内容没有填充,效果如下图布局分析承载日历网格的是一个ViewPager,每天的日历活动是一个ListView,需要实现的效果是,在listview区域向上滑动,viewpager也跟着滑动,滑动后viewpaer只留下一行,listview滑动到这一行的下面。难点在于拦截listview的滑动事件。实现分析使用Cal
2015-06-21 19:08:20
1603
原创 Head First---命令模式
命令模式属于对象的行为模式,它把一个请求或者操作封装在一个对象中,以便使用 不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销操作。命令模式涉及到五个角色:(1)client:这个客户负责创建一个ConcreteCommand,并设置其接受者。(2)Invoker:这个调用者持有一个命令对象,并在某个时间点调用命令对象的execute方法,将请求付诸实行。(3)Rece
2015-06-07 19:52:15
555
原创 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
378
原创 移动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
583
原创 指针
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
435
原创 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
532
原创 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
4016
原创 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
523
原创 Linux 文件权限
在linux文件系统中,每一个文件或者目录都有访问权限,此权限决定了谁能访问以及如何访问这些文件和文件目录。用命令ll即可查看文件对应的权限:"drwxr-xr-x"此表示文件的权限,有十个字符,第一个字符代表文件的类型,第2-4字符代表文件所有者的权限,第5-7字符代表文件所有者所在用户组访问的权限,第8-10字符代表其他用户的访问权限。文件类型:_:普通文件
2015-04-12 10:53:03
1325
原创 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
1368
原创 vi
功能最强在的编辑器——vivi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、 游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi
2015-04-06 10:56:59
400
原创 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
444
原创 android 图像缩放
1.ImageView的ScaleTypeImageView是Android中的基础图片显示控件,该控件有个重要的属性ScaleType,这个属性在一定程度上可以控制图片显示的缩放。Launcher中AppWidget的preview显示是通过ImageView显示,而且每个AppWidget的preview大小可能不一样,而给定的显示区域大小是一样的,故通过ScaleType属性来控制pre
2015-03-22 11:15:45
1086
原创 android 循环自定义View
效果:固定的子view个数,循环滑动,第一个子View向左滑即滑到最后一个子View,最后一个子View向后右滑即滑到第一个子View效果图如下:
2015-03-13 19:51:50
1190
原创 android Binder机制
一、Bindr框架Binder是一种架构,这种架构提供了服务器端口、Binder驱动、客户端接口三个模块。如下图:客户端:客户端通过Ixxx.Stub.asInterface()来获得代理,同时将BinderProxy传给Proxy对象,其中BinderProxy即为要获得的mRemote。Binder驱动:通过获得的mRemote引用,调用transact()方法,向远程
2015-03-01 17:01:34
643
原创 android进程间通信(远程服务aidl,客户端)
上一篇已经介绍完服务端的创建,在此基础上创建客户端来实现进程间通信。客户端可以看到客户端的包(com.hm.aidl)下的文件和服务端的一样,文件和包名一定要相同。布局文件很简单:四个button,负责bind服务,注册回调,获取数据<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
2015-03-01 15:47:20
475
原创 android进程间通信(远程服务aidl,服务端)
android进程间通信,使用service,调用bindService来绑定服务,本例实现双向通信。服务端
2015-03-01 15:29:28
657
原创 平行四边形的效果实现
要实现的效果图如下:实现此效果的第一思路是使用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
6491
1
原创 类似NumberPicker的效果实现
最近在做电视项目,关于TV搜台,当搜台时,搜台频率会变化,需要一个数字滚动的效果。如效果图:此效果实现比numberpicker简单很多,不需要处理滑动事件,只需要相应按键事件或者其他触发滚动事件。先来看布局文件main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2015-01-31 16:48:11
877
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人