- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Android View获取坐标值、相对距离的方法
首先看一张图 其中,触摸点表示点击的位置,View表示点击的控件,ViewGroup表示点击的控件所在的父容器,屏幕表示整个手机显示屏。View获取坐标的方法有: getTop:获取到的,是view自身的顶边到其父布局顶边的距离 getLeft:获取到的,是view自身的左边到其父布局左边的距离 getRight:获取到...
2016-06-14 20:55:58 17758
原创 Intent/Bundle传递Bitmap的时候失败甚至崩溃
在Android开发中,我们有时候需要传递一个Bitmap给一个Activity。我们最直接的做法便是通过Intent/Bundle来传递数据,因为Bitmap也已经实现了Parcelable接口。 但是,当你运行程序的时候,常常又会发现Bitmap并没有传递过去甚至程序直接崩溃了,那么这又是为什么呢? 其实,这绝大多数是由于Bitmap过大导致...
2016-06-13 13:41:10 5048
原创 ListView的常见使用技巧和扩展
1.使用ViewHolder模式提高效率 通过在自定义Adapter中定义一个内部类ViewHolder,可提高50%的效率。关于自定义Adapter的简单封装,可以看我的这个博客 http://blog.csdn.net/afei__/article/details/51502134 2.设置项目分隔线android:divider="@andr...
2016-06-12 21:13:21 1162
原创 Android事件分发及拦截机制
一、MotionEvent 这是Android为触摸事件封装的一个类。只要是重写触摸相关方法,参数一般都含有MotionEvent,可见其重要性。其中包括的一些常用的重要属性和方法:MotionEvent.ActionDown:手指按下MotionEvent.ActionMove:滑动MotionEvent.ActionUp:手指抬起getX():获取相对于控件左上角的...
2016-06-11 13:54:53 996
原创 Android自定义View
一、自定义View的步骤 1.创建一个类继承View或者View的子类 2.重写必要的构造方法 3.可以选择在values目录下创建一个attrs.xml的属性定义文件 <declare-styleable name="TopBar"> <attr name="title" format="string" />...
2016-06-10 13:37:33 791
原创 Android View介绍、测量和绘制
1 Android控件架构 Android 中控件分为 ViewGroup 和 View。ViewGroup 作为父控件可包含和管理多个 View。通过 ViewGroup 整个界面上的控件形成了一个树形结构,即我们常说的控件树,上层控件负责下层控件的测量和绘制,并传递交互事件。即下图所示 通常情况下,在 Activity 中使用 setContentVi...
2016-06-09 16:41:09 1480
原创 Android 中 GLSurfaceView 截图
GLSurfaceView 截取图像的时候,往往传统的方法并不行得通,我们发现使用 GLSurfaceView.getDrawingCache() 等方法得到的往往是一张纯黑的图,这是由于 GLSurfaceView 和 SurfaceView 一样都有一块透明的缓存区域,所以我们截取的往往只是这块透明的缓存区域。 方法一:下面这个方法是在 stackoverflow 上看到的一个方法...
2016-06-08 17:00:58 12090 14
原创 解析Android中应用程序文件存储用得到的一些文件路径
废话不多说,直接看代码 // 获得缓存文件路径,磁盘空间不足或清除缓存时数据会被删掉,一般存放一些临时文件 // /data/data/<application package>/cache目录 File cacheDir = getCacheDir(); Log.d("TAG", "getCacheDir() : " + cacheDir.getA...
2016-06-07 21:23:02 6991
原创 sqlite的一些常见操作(增删改查)语句
创建表create table user (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, sex TEXT)create table if not exists user (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, sex TE...
2016-06-06 14:56:51 765
原创 Android如何将软键盘回车换成搜索等按钮,EditText中imeOptions属性的使用
一、效果图如上图,在使用键盘输入的时候,有时我们可以看到回车键是“下一步”、“搜索”、“确认”等,那么这个效果要怎么做呢?其实很简单,我们只需要在EditText中设置imeOptions这个属性就行了。 <EditText android:layout_width="match_parent" android:layout_height=...
2016-06-05 14:14:24 13297
原创 Android程序异常崩溃后重启
有时候,我们需要应用在崩溃的时候自动重启,并打开崩溃前的那个Activity。这时候,我们就需要用到Thread.UncaughtExceptionHandler这个接口。首先,我们知道,既然是要在整个Application的生命周期范围内都有效,那么我们也应该在Application中绑定它。这里有两个做法: 1.程序的Application实现这个接口:package c...
2016-06-04 16:15:09 8683
原创 LimitQueue固定长度的队列
在开发过程中,有时会有这样的需求,一个固定长度的集合里,当收到新的数据时自动丢掉最旧的数据这样的队列结构。其实实现并不难,即一个队列结构的集合,在推送新数据时判断一下,当集合大小已经达到限制长度时自动丢掉最旧的数据。import java.util.LinkedList;public class LimitQueue<E>{ private int limit; //...
2016-06-03 18:32:02 18968 1
原创 git branch用法总结,查看、新建、删除、重命名
一、查看分支 git branch [-r | -a]:1.git branch查看本地所有分支2.git branch -r查看远程所有分支3.git branch -a查看本地和远程所有分支如图,一般当前本地分支前带有“*”号且为绿色,远程分支为红色 二、新建分支 git branch [-f] <branchname>:新建一个分支,但不切换。如图...
2016-06-02 14:51:51 86877 3
原创 Android避免反复弹出同一Toast
前言在Android开发中,当我们使用Toast提示一些消息的时候,比如点击某个按钮或者其它某个操作后会提示一条Toast,而Toast是会持续一段时间再消失的,但是当用户疯狂点击了这个按钮或者某个操作后,可能就会造成一条Toast反复弹出很多次,持续较长时间,这也许是我们不希望看到的,所以我们可以设定一个显示的时间间隔 代码package com.example.msi_cn....
2016-06-01 20:37:28 4324
设计模式之禅第二版
2018-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人