自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 GreenDao 使用教程

在平时的开发过程中,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等。 所以,适用于 Android 的ORM 框架也就孕育而生了,现在市面上主流的框架有 OrmLite、SugarORM、Active Android、Realm 与 GreenDAO。 GREENDAO 设计的主要目标: - 一个精简的库 -

2016-11-11 21:03:24 423

原创 使用AndroidStudio进行NDK开发

1.在File–>other settings–>Default Projects Settings中配置Android NDK Location 在local.properties中会生成ndk.dir=E:\android-sdk\ndk-bundle 2.在gradle.properties最后添加android.useDeprecatedNdk = true 3.在build.grad

2016-10-28 12:38:15 247

原创 OKHttp框架

原文地址 导入jar包或在Gradle中进行如下配置compile 'com.squareup.okhttp3:okhttp:3.3.1'或者通过maven导入<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.2.0</version></de

2016-10-27 20:05:06 397

原创 Picasso使用

1.下载jar包加入项目,或者直接在build.gradle配置文件中加入compile 'com.squareup.picasso:picasso:2.5.2'注意如果你开启了混淆,你需要将以下代码添加到混淆规则文件中:-dontwarn com.squareup.okhttp.**2.简单使用 Picasso使用简单易用的接口,并有一个实现类Picasso,一个完整的功能请求至少需要三个参数;

2016-10-13 16:52:13 280

原创 Volley框架

Volley适用于数据量不大,但通信频繁的场景。 一、导入volley.jar 二、使用 1.创建RequestQueue对象,定义网络请求队列 一般而言,网络请求队列都是整个APP内使用的全局性对象,因此最好写入Application类中:public class MyApplication extends Application{ // 建立请求队列 public sta

2016-10-13 10:23:47 224

原创 【Linux】常用命令

命令提示符:[root@localhost ~]#root :当前登录用户localhost:主机名~:当前所在目录(家目录 /root)普通用户是/home/user 超级用户的提示符# 普通用户的提示符$命令格式: 命令 [选项] 简化选项- 完整选项–[参数]ls :查询目录中内容-a 显示所有文件,包括隐藏文件-l 显示详细信息 ll-d 查看目录属性-h人性化显示文件大

2016-10-11 16:30:37 178

原创 Window属性

windowBackground:窗体的背景 windowFrame:Dialog 是否有边框 windowNoTitle:窗体是否有标题 windowActionBar:窗体是否有ActionBar windowFullscreen:是否为全屏 windowOverscan: 是否要求窗体铺满整屏幕 windowIsFloating:窗体是否浮在下层之上 windowConten

2016-08-27 20:26:08 1031

原创 Java中日期时间

一、Date类 在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式: - 年份 y 由整数 y - 1900 表示; - 月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月; - 日期(一月中的某天)按通常方式由整数 1 至 31 表示; - 小时由从 0 至 23 的整数表示; - 分钟按通常方式

2016-08-27 15:45:56 530

原创 【Android6.0】运行时权限

6.0以下的权限在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。 而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝。 当然你也可以在设置界面对每个app的权限进行查看,以及对单个权限进行授权或者解除授权。 Geogl

2016-08-09 13:35:36 273

原创 Android坐标系统

1.获取屏幕区域的宽高尺寸DisplayMetrics metrics = new DisplayMetrics();context.getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getMetrics(metrics);int widthPixels = metrics.widthPixels;int heightPi

2016-08-07 13:30:50 386

原创 【自定义View】

1.在res/attrs文件中自定义属性,format的取值范围有: string、color、dimension、enum、reference、boolean、integer、float、fraction、flag 2.在自定义控件中声明定义的属性: string是String类型,color、dimension、integer是int类型,float是float类型,boolean是boo

2016-08-05 17:40:31 187

原创 Paint和Canvas

PaintPaint继承自Object,是graphics家族的东西,他有一个子类TextPaint。 Paint的方法主要可以抽象成两大类,一类负责设置获取文字相关的东西,一类负责设置获取图形绘制相关的东西; float getFontSpacing() 获取字符行间距。 float getLetterSpacing() void setLetterSpacing(float lette

2016-08-03 15:49:31 717

原创 Android Recycler的使用

为了适应RecyclerView,需要创建一个Adapter和LayoutManager 1.创建Adapter继承自RecyclerView.Adapter类,用于将数据和布局Item进行绑定。 重写onCreateViewHolder返回ViewHolder和onBindViewHolder方法和getItemCount方法, 在内部自定义ViewHolder继承RecyclerView.

2016-07-22 20:25:18 659

原创 第三方登录

1)要数据,不要功能 如果你的应用拥有用户系统,就是说你的应用自己就有注册和登录功能,使用第三方登录只是为了拥有更多用户,那么你可以依照下面的步骤来做: 1、用户触发第三方登录事件 2、showUser(null)请求授权用户的资料(这个过程中可能涉及授权操作) 3、如果onComplete()方法被回调,将其参数Hashmap代入你应用的Login流程 4、否则提示错误,调用remove

2016-07-16 09:13:22 876

原创 Mob短信验证

一、 1.获取SDK 2.导入SDK 将MobCommons.jar,MobTools.jar,SMSSDK-2.0.1.aar,SMSSDKGUI-2.0.1.aar放到libs目录下 并在build.gradle中添加 3.配置AndroidMenifest.xml 添加权限<uses-permission android:name="android.permission.REA

2016-06-17 09:25:06 391

原创 Mob ShareSDK的使用

获取ShareSDK的AppKey 申请ShareSDK的appkey的流程 2.下载SDK ShareSDK下载 3.快速集成 将产生的文件夹中的所有文件复制到项目中覆盖 4.配置AndroidManifest.xml 1)添加权限<uses-permission android:name="android.permission.GET_TASKS" /> <uses-perm

2016-06-15 22:44:13 1011

原创 多线程断点续传

一、定义UI<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="matc

2016-06-15 13:13:03 179

原创 【Android自定义控件】打造炫酷进度条

1.使用TypedValue将dp或者sp转换为pxTypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal,getResources().getDisplayMetrics());TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal,getResources().ge

2016-06-14 19:53:42 1867

原创 Dialog、PopupWindow、Toast

一、对话框 Dialog类中最常用的子类是AlertDialog,通过AlertDialog.Builder对象辅助构造 对话框的使用 可以通过setCustomTitle()和setView()自定义标题样式和内容样式 如果一个对话框在Activity中需要反复使用,可以利用缓存机制,在Activity.onCreateDialog函数中构造,通过Activity.showDialog显示

2016-06-13 16:06:34 318

原创 通知栏和桌面小部件

RemoteViews在其它进程中显示,提供了一组基础操作用于跨进程更新界面。 一、通知栏(Notification) 通知栏涉及到两个类,一个是Notification通知信息类,对应了通知栏的各个属性;一个是NotificationManager通知管理类,负责发通知、清除通知等操作。 NotificationManager是一个系统的服务,必须通过getSystemService(NOT

2016-06-13 09:18:43 463

原创 Android自定义控件

一、MeasureSpec 获取测量大小:MeasureSpec.getSize(measureSpec) 获取测量模式:MeasureSpec.getMode(measureSpec) SpecMode: - UNSPECIFIED:未指定,没有限制 - EXACTLY:精确模式。对应于LayoutParams中的match_parent和具体数值两种模式; - AT_MOST:

2016-06-12 21:06:05 226

原创 Android事件分发机制

一、View位置参数 1.top、bottom、left、right:分别表示四个顶点的原始坐标,通过getTop()、getBottom()、getLeft()、getRight()方法获取,这些坐标都是相对于父控件的相对坐标,如果要获取相对于屏幕的绝对坐标可以通过View.getLoactionOnScreen(int[])获得 2.x、y是View左上角相对于父容器的坐标,translat

2016-06-12 15:19:17 251

原创 Android消息机制和多线程

一、Android消息机制 Android消息机制主要是指Handle的运行机制,Handle是Android消息机制的上层接口,Handle的运行需要底层的MessageQueue和Looper支撑。 Handle的主要作用是将一个任务切换到指定线程去执行; MessageQueue内部存储了一组消息,以队列的形式对外提供插入和删除; Looper以无限循环的形式去查找是否有新消息,如果有

2016-06-11 14:50:50 350

原创 Android网络通信

一、Web通信 1.联网方式选择 Android支持通过GPRS、CDMA、WiMAX、WiFi等多种方式连接网络,每种联网模式下,都会有一些可供选择的连接点,Android对最好连接点的选择是根据不同联网方式的先验知识作出判断,优先选择通过WiFi连接网络,如果所有WiFi连接点均处于不可用状态,就会依次考虑3G网络、EDGE网络、GPRS网络,Android系统还会时刻关注连接点可用性的变化

2016-06-10 14:31:43 381

原创 Bitmap的加载和缓存

一、加载 由于Bitmap的特殊性和Android对单个应用的内存限制,导致加载Bitmap时很容易出现内存溢出。 BitmapFactory提供了四类方法:decodeFile、decodeResource、decodeStream、decodeByteArray,分别支持从文件系统、资源、输入流、字节数组中加载一个Bitmap对象,其中decodeFile和decodeResource又间接

2016-06-09 10:57:55 461

原创 【Android基础】Drawable

在实际开发中,Drawable常被用来作为View的背景使用。 Drawable一般都是通过xml来定义,在应用运行时都会加载成一个Drawable对象,也可以使用代码来创建。 1.BitmapDrawable 是对Bitmap的一种包装,在实际开发中,我们可以直接引用原始图片,也可以使用xml来描述它。 它可以设置绘制方式,如平铺、拉伸或保持图片原始大小。 属性: - src:图片的

2016-06-08 15:55:52 261

原创 【Android基础】动画

一、帧动画 Frame Animation 1.在res/drawable文件夹下创建.xml文件<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item

2016-06-08 09:40:40 244

原创 Android屏幕适配

常见的几种屏幕分辨率: mdpi:分辨率320 * 480 ,屏幕像素密度 160dpi,设备密度1,屏幕宽度320dp; hdpi:分辨率480 * 800,屏幕像素密度240dpi,设备密度1.5,屏幕宽度320dp; xhdpi:分辨率720 * 1280,屏幕像素密度320dpi,设备密度2,屏幕宽度360dp; xxhdpi:分辨率1080 *1920,屏幕像素密度480dpi,设

2016-06-07 19:59:14 239

原创 Android Studio使用

Android Studio下载地址: AndroidDevTools Android Studio中文社区 一、导入项目(工程) 1.导入一个Android Studio项目,直接Open an existing Android Studio project; 2.导入一个Eclipse项目:Import project(Eclipse ADT,Gradle etc.) 3.导入一个含

2016-06-06 10:17:00 364

原创 【Android基础】应用资源

应用资源:XML资源文件:存储应用所需的字符串、颜色和界面样式等交互界面相关的信息。可以分成两类,一类定义为列表型xml资源文件,该类型个的每个资源文件都存储了多个资源项;另一类定义为值类型xml资源文件,该类型的每个资源文件都仅代表一个资源项;数据资源文件:应用中所需要使用的图像文件、音频文件、视频文件及其他格式的数据文件,每个数据资源文件都对应着一个资源项; 集中存放在mipmap或raw

2016-06-03 13:03:16 266

原创 【Android基础】六、Fragment

Fragment家族常用的API Fragment常用的三个类: - android.app.Fragment 主要用于定义Fragment android.app.FragmentManager - 主要用于在Activity中操作Fragment android.app.FragmentTransaction - 保证一些列Fragment操作的原子性,熟悉事务这个词,一定能明白~

2016-06-02 16:07:54 235

原创 【Android基础】五、多媒体编程

一、图片: 存放在内存中的图像数据会通过Bitmap对象来表示,实现了Parcelable接口,说明图像数据可以进行序列化和反序列化,便捷地在进程间传递。 不同格式的图像数据在内存中有着不同的存储方式,占用的内存大小不同。 在图片使用完毕后,手动释放图片占用的内存空间,保证内存可以更快的进行回收: if(!bitmap.isRecycled()){ //对

2016-06-02 10:12:43 195

原创 【Android基础】四、四大组件(二)

3.Service Service AIDL Service两种启动方式: 1)startService():onCreate方法只调用一次,每次开启服务都会回调onStart方法,开启服务的进程被杀死后会自动重新启动,手动杀死不会重新启动。 2)bindService():onCreate,onBind,onUnbind,onDestroy只调用一次,只能绑定一次,绑定后只能解绑一次,可

2016-06-01 15:27:00 224

原创 【Android基础】三、四大组件(一)

一、Activity 二、BroadcastReciver 1)getResultData():获取广播发送的数据,此data是在清单文件中声明广播接收者的时候设置的data标签,在发送广播时对Intent对象setData(); 2)以下两个方法只有在有序广播中才有效 setResultData();//修改广播数据 absorbBroadcast();//拦截广播 3)intent.

2016-06-01 13:11:24 331

原创 【Android基础】二、网络编程

1、从网络中下载图片,使用HttpURLConnection进行访问网络的操作2.访问网络的操作不能放在主线程中,开一个子线程通过发送消息到UI线程,在UI线程修改界面Handler handler = new Handler(){ @Override public void handleMessage(Message msg) {

2016-05-31 10:59:43 201

原创 【Android基础】一

一、打电话 1)声明权限: uses-permission android:name="android.permission.CALL_PHONE"/>2)隐式跳转到打电话 Intent intent = new Intent(); intent.setAction("android.intent.action.CALL");

2016-05-24 18:59:21 294

原创 git的简单使用

AndroidStudio中git的使用1)在github上新建一个仓库 2)AndroidStudio的git配置: File > Settings > Version Control > git添加git的安装目录D:\Program Files (x86)\Git\bin\git.exe 3)设置github账号: File > Settings > Version Control >

2016-04-21 09:18:13 377

原创 Window和WindowManager

Window是一个抽象类,Android所以的视图都是附加在Window上的,Window实际是View的直接管理者,它的具体实现是PhoneWindow,Window的具体实现位于WindowManagerService;每一个Window都对应着一个View和一个ViewRootImpl,Window是以View的形式存在的,Window和View之间通过ViewRootImpl建立联系;W

2016-04-20 07:40:27 299

原创 Android动画

补间动画set标签对应AnimationSet类,它的两个属性: - android:interpolator:动画集合所采用的插值器,控制动画的播放过程,默认为@android:anim/acceletate_decelerate_interpolator(加速减速插值器); 时间插值器:根据时间流逝的百分比计算出当前属性值改变的百分比,系统预置的有LinearInterpolator(线

2016-04-19 18:45:44 245

原创 Android的Drawable

Drawable一般都是通过xml文件定义的,也可以通过代码来创建具体的Drawable对象。通过getIntrinsicWidth和getIntrinsicHeight这两个方法可以获取到Drawable的内部宽/高,一张图片形成的Drawable的内部宽/高就是图片的宽/高,但是一个颜色所形成的Drawable就没有内部宽/高的概念,内部宽/高不等于它的大小。 1.Bitmap 通过xml描

2016-04-19 14:01:50 243

空空如也

空空如也

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

TA关注的人

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