自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SwipeRefreshLayout 的简单使用

API使用如何刷新上拉加载1.API使用 setColorSchemeResources(int… colorResIds) 设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,可以设置多种不同的颜色,每转一圈就显示一种颜色。setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener)设置监听,需要重写onR

2017-12-25 10:04:35 309

转载 学习

一些学习博客CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio 老罗:http://blog.csdn.net/luoshengyang 小巫:http://blog.csdn.net/wwj_748 Mr.Simple:http://blog.csdn.net/bboyfeiyu 任玉

2017-12-08 16:18:56 160

原创 安卓开发一些常用工具的设置以及注意点

关于android studio的设置,可参考: 地址 http://www.cnblogs.com/smyhvae/p/4390905.html

2017-11-10 16:15:15 180

原创 安卓开发常用的颜色

#ffffff #fffff0 #ffffe0 #ffff00 #fffafa #fffaf0 #fffacd #fff8dc #fff5ee #fff0f5 #ffefd5 #ffebcd #ffe4e1 #ffe4c4 #ffe

2016-06-22 10:32:42 321

原创 onDraw画圆环

@Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub // super.onDraw(canvas); int centre = getWidth() / 2; // 获取大半径 int radiu

2016-06-21 14:35:18 2345

原创 自定义属性获取

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomTitleView); a.getColor(R.styleable.CustomTitleView_titleTextColor, 0); a.recycle();xml里的写法

2016-06-15 19:48:08 379

转载 自定义属性一

1. reference:参考某一资源ID。    (1)属性定义:                               background" format = "reference" />                (2)属性使用:                                  Android:layout

2016-06-15 17:24:21 220

原创 onLayout过程学习

View 的layout方法 @SuppressWarnings({"unchecked"}) public void layout(int l, int t, int r, int b) { if ((mPrivateFlags3 & PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT) != 0) { onMeasu

2016-06-13 14:33:29 709

原创 View的测量过程学习onMeasure

首先来说下一个int值,它被定义在VIew内部类里。叫MeasureSpec, 俗称测量规格。高2位代表一个SpecMode. 低30位代表SpecSize.Mode有3种,EXACTLY AT_MOSTUNSPECIFIED.对于不同的类型,测量过程分为几种,1. 顶级View  DecorView对于顶级View,它的宽由屏幕宽度和layoutparams的宽度

2016-06-12 14:00:25 298

原创 安卓滑动冲突的理解和一些解决思路

package com.example.testview;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.widget.Button;public class C

2016-06-07 19:13:59 1160

原创 View事件分发

View 的事件传递由Activity到Window到ViewGroup,然后有2种,一种是交给ViewGroup的child,一种就是调用自己的父类的分发方法1.Activity的分发方法 public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACT

2016-06-07 15:52:34 338

原创 单例,静态工厂,构造器

1.effective in java 第一条,尽量用静态方法代替构造器1.静态工厂不必每次都创建新对象。 如Boolean.valueof(boolean)实例受控的类,确保是singleton(单例),或者是不可实例化的。singleton 仅被实例化一次的类,注意几点singleton构造方法必须私有,使得无法通过new来生成第二个实例,对象仅有一个,尤其在多

2016-06-02 15:30:32 1022

转载 安卓学习过程

分享一些安卓学习过程中可以看的书,大家互勉 ,目前也在看这些,http://diycode.cc/wiki/androidbook?hmsr=geek?ref=myread

2016-06-01 19:35:58 227

原创 如何接收到home键的点击事件

/** * 捕获home键 * @author Administrator * */ public class HomeReceiver extends BroadcastReceiver{ final String SYSTEM_DIALOG_REASON_KEY = "reason"; final String SYSTEM_DIALOG_REASON_HOME_KE

2015-12-30 17:03:20 673

原创 Toast的显示需要的环境

“A toast can be created and displayed from an Activity or Service. If you create a toast notification from a Service,it appears in front of the Activity currently in focus.”API 解释我们调用toast.m

2015-12-30 16:40:49 330

原创 打包工具之命令篇

JAVA如何执行命令,并在控制台打印出错误信息/** * cmd执行命令,会输出错误信息 * * @param cmd * @return * @throws IOException * @throws InterruptedException */ private int exec(String cmd) throws IOException, Int

2015-12-03 16:48:14 296

原创 理解dp,px和手机尺寸

首先要理解这些有几个概念必须清除,dp, px,ppi,手机尺寸,以及作为Android 开发必须放到的图片目录的含义ldpi,mdpi,hdpi,xhdpi,xxhdpi.我们一个个来介绍,1.手机尺寸。这个指的是手机的物理尺寸,比如苹果4S的3.5英寸,5S的4英寸,还有很多,我们可以打开我们AVDmanager.里面有很多列表供我们生成模拟器尺寸。注意,这个手机尺寸是指屏幕的对角

2015-11-12 11:25:14 3626

原创 双击返回键退出应用

两秒内双击返回键退出,否则toast提示。private boolean isExit; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(!isExit) { is

2015-11-11 15:45:39 322

原创 初识JNI(二)-静态注册和动态注册

为什么需要注册? ,这个其实就是给Java的native函数找到底层C,C++实现的函数指针。静态注册,通过包名类名一致来确认,Java有一个命令javah,专门生成某一个JAVA文件所有的native函数的头文件(h文件),步骤如下,我们只说android项目下如何实施,其实理解了都一样1.编译Java文件生成class文件在dos环境下cd到java类所在的路径。然后执行javac

2015-11-05 16:10:36 2415 1

原创 初识JNI(一)

JNI是Android的重要组成部分,它帮助我们解决了2件事。1.JAVA函数可以直接调用native语言写的函数,一般指的是C,C++函数2.native语言的函数可以调用java语言的函数,总结,JNI是Native世界和JAVA世界的桥梁。我们可能会接触到这样的类。package com.vss.vssmobile.common;import com.vss.

2015-11-03 19:46:13 410

原创 Linux内核是如何启动android内核直到我们的helloword

首先 ,Linux  系统启动的最后一步将读取init.rc这个文件,这个文件我们一般的android手机,Linux内核就是通过这个文件来启动我们的android内核的。init.rc路径: 根目录下就有init.rc会启动一个服务,启动服务的语法如下Services services 是一些由init 启动 和 重新(如果有需要)启动的程序,当然这些程序如果

2015-09-24 18:12:49 697

转载 Activity启动的过程

1. 入口。以前一直都说Activity的人口是onCreate方法。其实android上一个应用的入口,应该是ActivityThread。和普通的java类一样,入口是一个main方法。public static final void main(String[] args) {        SamplingProfilerIntegration.start();   

2015-09-22 19:18:32 299

原创 源码在线阅读

推荐一个源码阅读的网站http://androidxref.com

2015-09-22 09:09:57 484

原创 android 应用如何实现多个Activity在栈中finish掉

有一种应用场景是这样的,列如你的应用登录后会一直检测session 是否过期,类似QQ,如果过期或者失效,会提示你身份验证已过期,并自动重新跳转到你的登录QQ的页面,但此时你的activty或许已在栈中存在多个,那么这种情况下你按返回键就会返回到sessioid过期的那个场景。A-B-C-D-E ,这个是你栈中的activity,比如A是登录页面,B是你的主页面,如果你在E页面遇到se

2015-08-13 10:59:22 3986 1

原创 样式,主题和动画

样式---------定义在values种的style.xml里,和主题不同,样式的作用范围主要是在控件上,旨在抽出不同布局里不同控件相同风格的一组属性。主题-------主要是写在清单文件里,有基于应用的,也有基于Activity的,包括一些背景色和是否全屏等等,具体可以看系统SDK的platforms下的value文件夹下。动画分为几种帧动画,首先创建一个x

2015-07-08 11:06:31 253

原创 android 通知基础

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ NotificationManager

2015-07-07 19:54:44 291

原创 android调用照相机简单demo

public void click(View view) { Intent intent = new Intent(); // 指定拍照的意图。 intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); file = new File(Environment.getExternalStorageDirectory(),System.cu

2015-07-07 14:43:24 1352

原创 SurfaceView基础用法

surfaceview : 完成单位时间内大量的界面变化。视频播放器。    游戏。      画布里面绘制图片。双缓冲机制:内部有两个子线程。A   解码图像--->前台显示--->解码图像---> 前台显示B               解码图像--->前台显示---> 解码图像还有一个版本的问题,如果是高版本,列如4.0以上的,

2015-07-07 11:13:56 365

原创 android 图片格式和像素引发的问题

图片的格式有bmp,png,jpg等格式,相对来说,同样一张图片,bmp可能就大点,图片大小是由像素,我们买来的手机的500万像素指的就是这个概念。比如我们一张应用图标是72*72,那他就是由宽72个像素和高72个像素的组成。但每个像素是多少大小呢,像素最大值是ff 在内存中占用8位, R,G,B 3个分别是24位,RGB前面还有个ff表示透明度,所以完成的表示一个颜色的一个像

2015-07-06 11:11:43 856

原创 AIDL学习

进程是操作系统分配给应用的一个单位,进程与进程间的数据是独立的。远程服务的概念就是调用者和服务不在同一个进程,一般情况下是无法调用的。这时候就要用到进程间通讯,其实就是操作系统的一块公共的内存空间。如信号量,消息队列,管道,消息邮箱,文件等。google提供了AIDL ,安卓接口定义语言。首先上一篇说道服务和调用者之间有一个中间者,他实现了调用者需要调用服务的方法的接口。绑定远程服务调

2015-07-03 15:20:57 297

原创 android 布局的性能优化

1、布局重用2、减少视图层级3、需要时使用<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android

2015-07-02 18:19:44 261

原创 Service 服务基础学习

Service 作为和Activity一样作为4大组件之一,也是利用Intent来跳转的。Service有2种方式启动,一种是直接start,生命周期是onCreate-onStartCommand-onDestory还有一种则是绑定的方式启动。第二种方式的优点就是 能够调用Service里的方法,试想一下,我们开启一个下载服务,是不需要实时获取里面的一些方法来获取一些状态。

2015-07-02 15:20:54 339

原创 服务开启的2种方式

一、采用start的方式开启服务 生命周期如下:                         onStart()过时了开启服务: onCreate()--> onStartCommand()  ---> onDestory();如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和 onStartCommand();服务停止的

2015-07-01 16:10:43 980

原创 服务高于子线程

首先你打开一个应用,然后按返回键直到退出,这个任务栈可能是清空了,但这个应用所在的进程还是在的,你可以通过查看后台可以看到,这个是因为android系统的特性决定。进程分为5个等级的优先级:(从高到低)1.Foreground process 前台进程  用户正在玩的应用程序对应的进程        桌面2.Visible process 可视进程 用户仍然可以

2015-07-01 14:33:22 317

原创 任务栈的概念和activity的启动模式

1.一个应用程序一般都是由多个activity组成的。2.任务栈(task stack)(别名back stack后退栈) 记录存放用户开启的activity的。3.一个应用程序一被开启系统就给他分配一个任务栈,当所有的activity都退出的时候,任务栈就清空了。4.任务栈的id是一个integer的数据类型 自增长的。5.在android操作系统里面会存在多个任务栈,一个应用程

2015-07-01 13:21:43 479

原创 Activity生命周期的分析

onCreate 首次创建 可以做一些布局的初始化,通常是和onDestory对应,只调用一次 onStart 启动 和onstop 对应,表示启动,这时候其实已经在后台可见了,前台不可见,无法与用户交互 onResume 得到焦点 和 onPause对应 onPause 失去焦点 onStop 停止 onDestory 销毁资源精确得讲 onCreate -onStart

2015-07-01 11:38:23 427

原创 一些链接地址

1.比较全的一些开源框架 http://www.tuicool.com/articles/jyA3MrU

2015-06-09 14:23:51 294

转载 smali学习(一)

1.   dalvik字节码有两种类型,原始类型和引用类型。对象和数组是引用类型,其它都是原始类型。原始类型如下V void,只能用于返回值类型Z booleanB byteS shortC charI intJ long(64位)F floatD double(64位)对象类型表示如下对象以Lpackage/name/ObjectName;

2015-06-05 16:42:05 474

原创 weight属性全面解析

Weight并非网上很多文章所叙述的那样(文章都过于片面),weight是指某个组件在布局中【剩余空间】中的显示权重,那么所谓的剩余空间又是什么意思呢,其实是在没有设置weight属性的控件优先显示的情况,将未占用的布局空间合理分配给设置过weight的组件例如,0号和2号按钮都设置了android:width=“warp_content",因此文本显示框只能显示在2个按钮中的【剩余空间】

2015-04-30 14:12:54 2867

原创 service学习总结

Service生命周期如下: onCreate  onStart  onDestroy  onBind1). 被启动的服务的生命周期:如果一个Service被某个Activity 调用 Context.startService 方法启动,那么不管是否有Activity使用bindService绑定或unbindService解除绑定到该Service,该Service都在后台运行。

2015-04-29 14:58:10 314

空空如也

空空如也

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

TA关注的人

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