自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (64)
  • 收藏
  • 关注

原创 Android拍照及裁剪实现

一.概述拍照以及裁剪功能在有些项目中还是经常能遇到的,一般而言,使用拍照和裁剪功能基本上都是使用系统自带的Intent来实现,看起来很简单,但是其中还是有一些问题需要注意的。二.基本知识讲解先看看拍照和裁剪对应的动作; 拍照: MediaStore.ACTION_IMAGE_CAPTURE 裁剪: com.android.camera.action.CROP下面看一下裁剪时用的一些参数:这些

2016-01-29 17:29:15 1254

原创 Android实现从底部弹出的Dialog(二)

一.概述和Android实现从底部弹出的Dialog(一)一样,我们先上效果图:点击中间的弹出对话框按钮,从底部弹出Dialog,我们可以选择拍照,选择相片,以及取消按钮二.代码实现主页面布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://s

2016-01-28 18:15:27 21604 9

原创 Android实现从底部弹出的Dialog(一)

一.概述先给大家看一下效果图:点击中间的显示弹框按钮,从底部弹出来一个对话框,用户可以点击拍照或者从相册选择进行相应的操作,下面看看怎么实现。二.代码实现主页面布局文件,很简单,一个按钮,响应点击事件:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com

2016-01-28 17:58:24 36125 15

原创 Android为应用创建快捷方式

一.概述Android 快捷方式是桌面最基本的组件。它用于直接启动某一应用程序的某个组件。先给大家看看添加,检查,删除快捷方式的整个过程的效果图:二.实现下面看看怎么实现: /** * 添加快捷方式 */ private void addShortCut() { //指定动作 Intent shortcut = new Intent(

2016-01-28 16:54:16 799

原创 程序退到后台被杀掉进程后打开程序仍然保持登录状态

一.概述当我们登录一个程序之后,然后把它切换到了后台,打开了其他的程序,但是这个时候可能由于内存不存系统杀死了我们切换到后台的程序,这样我们下次去打开程序的时候又要重新登录,这样用户体验就不太好,我们希望可以在一段时间内保持一个登录状态。二.实现代码 /** * 实现程序退后台被杀掉进程后一段时间内打开程序仍然保持登录状态 */ private void checkLog

2016-01-27 16:51:31 5872

原创 mipmap 目录和drawable 目录有什么区别

在Android Studio中,当我们新建一个项目的时候,可以看到只有一个drawable目录,其他都换成了mipmap目录,那么这两个目录到底有什么区别呢? 看看官方的介绍:首先,使用上没有任何区别,把它当drawable使用就可以了。 但是用mipmap系统会在缩放上提供一定的性能优化。实例:Nexus 6 有 493 ppi,它刚好在 xxhdpi和xxxhdpi之间,所以显示的时候需要

2016-01-27 13:57:30 576

原创 PullToRefreshListView实现下拉刷新和上拉加载更多

PullToRefreshListView是一个很好用的第三方库,可以支持下拉刷新和上拉加载更多数据,下面给出一个万能的框架:大家使用的时侯只需要改变适配器和网络的访问方式就可以了。public class TuanFragment extends Fragment { private List<Goods.DatasEntity> datasEntities;//数据集合 @View

2016-01-27 10:51:36 1158

原创 android 密码输入通过复选框实现明文密文显示

在Android开发中,有时候当我们输入密码是不想被看到,可以选择输入类型为密文显示,那么怎么实现呢,先看效果图:代码如下:public class MainActivity extends FragmentActivity implements CompoundButton.OnCheckedChangeListener{ private EditText editText; pri

2016-01-27 09:17:23 1802

原创 Fragment事务提交的方式

一.概述在Android中,我们一般会使用FragmentTransaction的commit方法来提交事务,但是在有些情况下,调用这个方法去提交事务是会发生异常的,先让大家看一下会发生什么异常:意思就是告诉你不能在onSaveInstanceState方法之后去提交事务,这种异常的出现是由于,在Activity的状态保存之后,尝试去提交一个FragmentTransaction,这种现象被称为活动

2016-01-26 19:02:37 2460

原创 Android中notifyDataSetInvalidated()和notifyDataSetChanged()

首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别: 我们打开官方的源码: /** * Notifies the attached observers that the underlying data has been changed * and any View reflecting the data set shoul

2016-01-26 16:59:17 5008

原创 Android万能适配器基类

在Android开发中,我们经常需要使用适配器来显示数据,如果我们每次都让当前的适配器去继承BaseAdapter,然后重写它的几个方法,会不会觉得很麻烦呢,下面给大家介绍一个适配器基类,可以说是万能的,我们只需要去关心getView方法就可以了。public abstract class BaseListAdapter<T> extends BaseAdapter { protected f

2016-01-26 16:17:36 628

原创 Android常用加密代码实现

下面是一个DES加密的工具类:public class DESUtil { /** * 加密方法 * * @param keyData 密钥(用户名) * @param str 要加密的字符串(密码) * @return * @throws Exception * @author sigangjun */

2016-01-26 13:36:42 2772

原创 Android实现定时执行某个任务

在 Android中,有时候我们需要固定几秒后去执行一个动作,比如进入某个页面然后过几秒去刷新,下面看看怎么实现:方式一(使用handler): new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message message) {

2016-01-26 12:51:39 4517

原创 获取存储路径以及读写

首先给大家介绍两个方法,getFilesDir()和getCacheDir()getCacheDir()方法用于获取/data/data/cache目录 getFilesDir()方法用于获取/data/data/files目录然后我们看看怎么读写getFilesDir方法对应路径下的文件,系统提供了两个方法openFileOutput()和openFileInput()。 /**将数据写入系统

2016-01-26 11:06:04 739

原创 Android获取应用程序的版本名称和版本号

下面我们看一下在Android中如何获取应用的版本名称和版本号,首先我们看一下这些信息是在哪里定义的。 其中versuibCode代表版本号,versionName代表版本名。 /** * 获取版本号 * @return */ public int getVersionCode(){ PackageManager manager = getPa

2016-01-24 21:53:46 6344

原创 Android Studio 使用 lint 优化代码

一.概述Android Lint是在ADT 16(和 Tools 16)引入的一个新工具,可以扫描Android 项目源码中潜在的bug 。例如:缺少翻译(和未使用的翻译)布局性能问题(老的layoutopt工具会用于查找所有这样的问题,和除此之外更多的问题)未使用的资源不一致的数组大小(当在多个配置中定义数组)可访问性和国际化问题(硬编码字符串,缺少contentDescription等

2016-01-23 20:24:07 3077

原创 ViewFlipper使用详解

一.概述ViewFlipper是一个切换控件,一般用于图片的切换,当然它是可以添加View的,而不限定只用于ImageView,当然我们也可以自定义View,只是我们经常利用ViewFlipper来实现的是ImageView的切换,如果切换自定义的View,倒还不如使用ViewPager来做。二.基本实现先看一下效果图: 1.xml布局<RelativeLayout xmlns:android

2016-01-22 13:16:47 1184

原创 用户手势检测-GestureDetector使用详解

一.概述当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等。 一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸

2016-01-22 10:17:06 552

原创 Activity和Service通信

一.概述Service是一个应用程序组件,它能够在后台执行一些耗时较长的操作,并且不提供用户界面。服务能被其它应用程序的组件启动,即使用户切换到另外的应用时还能保持后台运行。此外,应用程序组件还能与服务绑定,并与服务进行交互,甚至能进行进程间通信(IPC)。 比如,服务可以处理网络传输、音乐播放、执行文件I/O、或者与content provider进行交互,所有这些都是后台进行的。在Activit

2016-01-21 22:25:07 849

原创 Fragment参数传递(二)

本篇讲讲同一个Activity,不同container间的fragment参数传递问题:方法一:直接在Activity中操作 在Activity中找到对应的控件实例,然后直接操控即可。 直接在activity中操作各个fragment的控件就可以实现消息互传。但,这样真的好吗?如果每个fragment中的控件都在Activity中操作,那还要fragment干嘛!最最起码,应该每个fragmen

2016-01-21 16:54:01 582

原创 Fragment参数传递(一)

在Fragment之间传递参数时,有两种情况: 第一种情况:同一个container中不同fragment间的参数传递。这种情况一般发生在fragment跳转时,上一个Fragment将参数传递给下一个Fragment。 第二种情况:同一个Activity中,不container间Fragment的参数传递。本篇先来介绍第一种情况,第二种情况将在下篇介绍点击按钮,跳转到第二个fragment,并

2016-01-21 14:31:37 867

原创 Activity生命周期之onSaveInstanceState和onRestoreInstanceState

先看看官方文档对着两个方法的描述:The system calls onSaveInstanceState() before making the activity vulnerable to destruction. The system passes this method a Bundle in which you can save state information about the ac

2016-01-21 11:32:08 694

原创 如何向一个Fragment传递参数---setArguments方法的介绍

在我们平常开发中经常会用到Fragment,当我们使用Fragment时一般是通过new Fragment的构造方法来实现,如果我问你怎么向一个Fragment传递参数,你是不是会首先想到通过构造方法,当面试被问到这个问题的时候我也是这么想的,后来发现自己错了,现在给大家讲一下究竟该怎么做。首先我们看构造方法这种方式为什么不行,根据Android文档说明,当一个fragment重新创建的时候,系统会

2016-01-21 11:07:32 32569 3

原创 XML和Json格式的比较

XML(Extensible Markup Language)是一种用来编码文档的标记语言,人和机器都能够快速理解XML文档的含义。它的其中一个目标就是能在互联网上广泛应用,现在XML已经被广泛地应用在各种应用、WEB服务和网站中。  JSON(JavaScript Object Notation)是一种轻量级的数据格式,它以”name / value”的格式来传输数据对象,JSON的目的就是为了能

2016-01-20 17:51:34 1112

原创 Android利用Build类获取当前设备信息

一.概述 Build类用来从系统属性中提取设备硬件和版本信息。获取所有的信息代码如下:private String getDeviceInfo(){ StringBuffer sb =new StringBuffer(); sb.append("主板:"+Build.BOARD); sb.append("\n系统启动程序版本号:"+Build.BOO

2016-01-20 17:47:02 5346

原创 Andorid实现退出客户端提示

在很多应用程序中,我们都可以看到当用户点击返回建即将退出程序时,会弹出一个Toast提示,当我们连续快速点击两次返回键时,就会退出当前应用,下面看看是怎实现的。 方式一: 重写onBackPressed()方法,放我们按下返回键的时候,此方法会被触发。 long firstTime = 0; @Override public void onBackPressed() {

2016-01-20 17:18:31 385

原创 Fragment状态的保存

当我们需要切换fragment的时候,官方给我们提供了两种方式:replace和add. 首先来看看replace方法: replace方法相当于先移除remove()原来所有已存在的fragments,然后添加add()当前这个fragment。这就导致了一个问题,我们切换一次,然后再切换回来,相当于重新加载了这个fragment,原来的状态不复存在,这显然与我们的日常使用不符。先做个实现说明

2016-01-20 15:32:14 591

原创 Android中的进程优先级

一.概述首先解释一下什么是进程: 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,进程包含多个线程在运行。在Android中,默认情况下,同一个应用程序内的所有组件都是运行在同一个进程中的,大部分应用程序也不会去改变它。不过,如果需要指定某个特定组件所属的进程,则可以利用manifest 文件来达到目的。manifest文件中的每种组件元素——、 、

2016-01-20 13:50:23 802

原创 Android下文件访问权限

android底层是linux系统,所以android下文件的权限和linux是一样的。所谓的文件访问权限,就是谁能够访问这个文件。 通过drwxrwxrwx这个字符串进行控制第一个字母 d:表示文件夹 -:表示文件后面每三个字母分为一组第一组: rwx 是文件拥有者的权限,也就是谁创建了该文件 r:read,读 w:write,写 x:execute,执行 -:表示没有该权限第二组:

2016-01-20 12:35:45 2464

原创 ScrollView嵌套ListView冲突问题的解决方案

Android开发中,如果一个页面上显示的内容过多,我们会在最外部嵌套一个ScrollView,将里面的内容包裹起来,以打到可以上下滑动的效果, 但是如果此时子控件有listview,gridview等可滑动的控件时,就会出现问题。问题一:数据显示不全先看效果图,正常显示的listview: 代码如下: private String[] mStrings = { "Abbaye de Be

2016-01-20 11:06:38 685

原创 为文字添加下划线和中划线

Android开发中如何给文字添加下划线和中划线呢,先看一下效果图: 下划线: 中划线: 方式一: //添加下划线// textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //添加中划线 textView.getPaint().setFlags(Paint.STRIKE_THRU_TEX

2016-01-20 10:30:19 5694

原创 对ListView进行美化,细节处理

在Android开发中,ListView是经常用到的一个控件,现在总结一下一些美化的小细节:一.listview拖动时背景图片变成黑色 解决方法:在布局文件中加入android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″二.listview的上边和下边有黑色的阴影 解决: android:fadingEdge=”none

2016-01-20 10:01:35 1179

原创 如何获取当前设备屏幕的宽和高

在安卓开发中,我们有时候需要获得当前设备屏幕的宽和高来进行一些操作,比如屏幕适配。下面介绍两种方法来进行获取:方式一:public String getScreenSize(){ DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int widthPixels = displayMe

2016-01-20 09:39:52 3999

原创 Android Sqlite数据库之使用事务

一.概述首先给大家普及一下知识,什么是事务: 事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。 简单的说吧,事务就是对数据库所进行的一次操作。二.Sqlite中的事务首先要知道Sqlite中为什么要使用事务: 假如我们需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法会导致应用响应缓慢,因为 sqlite插入数据的

2016-01-20 09:23:15 2905

原创 Android Sqlite 之 getWritableDatabase()和getReadableDatabase()区别

在Android开发中,如果我们想对sqlite数据库进行一系列的操作,都需要获得一个SQLiteDatabase对象,然后调用它的增删改查方法,官方给我们提供了两种方法来获得我们所需要的对象,getWritableDatabase()和getReadableDatabase(),但是这两种方法有什么不同之处呢?相信很多人没有去研究过吧?下面就给大家讲讲区别:首先getWritableDatabas

2016-01-20 09:08:06 1119

原创 Android运行环境Dalvik和ART的比较

Android4.4采用ART取代Dalvik,简单理解就是Android程序运行的根本机制改变了,程序会启动地更快,而且会更省资源。表现在用户体验上,就是Android更流畅了,同时续航能力显著增加。 Dalvik:应用程序在每次运行的时候,字节码都要通过及时编译器编译成机器码,这样会拖慢应用的运行效率。 ART:应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用,应用

2016-01-19 16:52:40 2996

原创 单例模式的7种写法

一、概述在介绍单例模式的写法之前,我们有必要了解一下什么是单例模式。 单例模式是一种常用的软件设计模式,在他的核心结构中只包含一个被称为 单例的特殊类。通过单例模式可以保证系统只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 单例模式结构图 作用:保...

2016-01-19 15:59:43 1284

原创 获取手机存储空间大小

在存储文件时,通常需要知道手机还有多少容量可以进行存储,下面列举了一些方法用来获取手机存储空间的大小: 1.判读SD卡是否可用 /** * 判断sd卡是否可用 */ public static boolean isExternalStorageAvailable() { return Environment.getExternalStorageSt

2016-01-19 15:59:20 12603 1

自定义viewpager指示器

自定义viewpager指示器

2016-07-17

开源项目微阅

开源项目学习代码

2016-07-15

Android 名企面试题及涉及知识点整理

Android 名企面试题及涉及知识点整理,包括Android,Java,数据结构等知识,面试必备,也可以拿来用于平时的学习提高。

2016-07-07

下拉刷新框架

下拉刷新库

2016-06-23

二维码扫描库

基于谷歌libZxing封装的库,

2016-06-23

微阅读项目

Android项目,适合学习

2016-06-23

高仿大众点评服务端代码

高仿大众点评的服务端代码,可以为移动端提供数据,需要结合mysql数据库实现数据连接

2016-06-19

ListView联动

仿饿了吗等APP,实现ListView联动,包括二级和三级

2016-05-31

ViewDragHelper例子

此Demo展示了ViewDragHelper的基本使用方法,并且处理了和ListView的冲突

2016-05-31

Databinding案例

展示了DataBinding的用法,基本包含了开发常用的用法

2016-05-27

多线程断点续传

使用多线程完成多个任务的下载,支持断点续传,使用数据库保存当前进度

2016-05-18

单线程断点续传

实现了单线程断点续传的功能,服务中启动线程,用数据库保存下载信息

2016-05-17

线程池使用Demo

本Demo演示了不同线程池运行的效果图,如果对多线程学习感兴趣,可以下载

2016-05-06

RxJava使用Demo

介绍了RxJava中Single的使用方法,有兴趣的可以下载,总结的比较全

2016-04-28

RxJava学习Demo

模拟使用RxJava从多个数据源中加载数据,很好的学习资源

2016-04-28

Retroift学习Demo

Retroift学习的Demo

2016-04-25

开源项目妹纸

Meizhi Android之RxJava & Retrofit最佳实践

2016-04-25

MVP模式写的Demo

MVP模式在项目中的使用,方便大家的理解

2016-04-24

mvp模式写的请求天气信息的Demo

标准的MVP模式的使用,请求天气数据的Demo

2016-04-24

仿微信朋友圈弹出评论和赞效果

实现了微信朋友圈点赞和评论弹出的动画效果

2016-04-24

HexEditor.dll

NotePad ++ 插件,用来查看16进制内容,可以用来查看class文件结构,使用方法是在NotePad++的安装目录下的plugins目录新建一个HexEditor文件夹,然后将该文件放到里面

2020-06-12

Android热修复实现

手动实现了一个简单的热修复功能,博客链接https://blog.csdn.net/Small_Lee/article/details/80770450

2018-06-22

Mvp项目架构

利用Retrofit,RxJava,Okhttp搭建的一个Mvp模式的项目,可以在此基础上进行快速开发

2018-01-04

mchange-commons-java-0.2.7.jar

C3P0数据库配置需要的jar包,需要和C3P0和MySql的jar包同时配置

2017-12-07

commons-io-2.5-bin.tar.gz

apache提供的文件传输工具类,一般和commons-fileupload结合使用

2017-10-18

commons-fileupload-1.3.3-bin.tar.gz

apach提供的文件上传工具类,需要结合commons-io包进行使用

2017-10-18

c3p0-0.9.5.2.jar

C3P0最新数据源jar包

2017-08-24

commons-dbcp2-2.1.1.jar

Apache开源数据源所需要的jar包commons-dbcp2-2.1.1.jar

2017-08-24

commons-pool2-2.4.2.jar

Apache开源的数据源需要的jar包,版本为2.4.2

2017-08-24

mysql-connector-java-5.1.43-bin.jar

MySQL提供的用于Java中进行JDBC开发的连接驱动

2017-08-24

基于融云实现的聊天

融云Demo

2016-08-27

webview的一些操作

webview的一些使用,包括处理错误页面,自定义拦截协议,cookie同步

2016-08-22

Retroft+MVP+RxJava+Dagger2封装

Retroft+MVP+RxJava+Dagger2封装,适用于大多数的项目

2016-08-21

Retrofit结合RxJava以及MVP架构

Retrofit结合RxJava以及MVP架构,目前很流行的东西,进行了封装

2016-08-19

RxJava和Retrofit的封装

对RxJava和Retrofit进行了封装,适用于任何项目

2016-08-19

TabLayout使用Demo

使用TabLayout结合ViewPager实现的页卡切换功能

2016-08-02

基于融云的即时通信

基于融云实现的即时通信Demo,集成了会话列表,会话界面,并且实现了自定义部分界面功能,大家可以参考学习,更多功能请大家上融云官网学习。

2016-07-29

友盟推送Demo

基于友盟的推送实现,亲测可行

2016-07-28

极光推送Demo

基于极光推送的Demo,方便大家的学习,详细效果图请见博客http://blog.csdn.net/Small_Lee/article/details/52043087

2016-07-27

妹纸源代码

开源项目妹纸的源码,想学习的可以下载了

2016-07-19

空空如也

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

TA关注的人

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