
android入门指导
文章平均质量分 51
android 入门级知识整理,源码有求必应
TaoLee-
这个作者很懒,什么都没留下…
展开
-
自动版本检测更新
主界面登录自动检查更新 checkupdateagent.addListener(checkUpDate); checkupdateagent.start();Agent版本获取服务端版本信息public class CheckUpdateAgent extends AbstractAgent<String> { public static final String KEY_VERSION原创 2016-05-11 12:00:28 · 5910 阅读 · 4 评论 -
GridView
public class DragGrid extends GridView { /** 点击时候的X位置 */ public int downX; /** 点击时候的Y位置 */ public int downY; /** 点击时候对应整个界面的X位置 */ public int windowX; /** 点击时候对应整个界面的Y位置 */原创 2016-04-20 10:31:39 · 1136 阅读 · 0 评论 -
Android中Intent在Activity之间传递对象[Serializable或Parcelable]
使用intent启动activity /** * Serializeable传递对象的方法 */ private void SerializeMethod(){ Person mPerson = new Person(); mPerson.setName("andy"); mPerson.s原创 2016-03-02 10:20:37 · 1095 阅读 · 0 评论 -
photoview图片显示
1jar包http://download.youkuaiyun.com/detail/taoolee/94407942类结构 3效果 4类文件public class SimpleSampleActivity extends Activity { static final String PHOTO_TAP_TOAST_STRING = "Photo Tap! X: %.2f %% Y:%.2f原创 2016-02-25 19:51:53 · 2173 阅读 · 2 评论 -
listview隔行变色
这个实现起来应该非常简单,但是我用的时候效果就是出不来,后来发现是因为listview的item本身设置背景色后,在代码中设置的隔行变色效果不出现。这里mark一下 @Override public View renderView(int pos, Vacation auditInfo, View view) { ButterKnife.bind(this,view);原创 2016-02-15 09:53:58 · 3379 阅读 · 2 评论 -
Fragment嵌套ViewPager切换后数据消失ViewPager空白问题
先描述一下现象 如图解决后如图 之前先在网上找了很多的解决办法,有的网友说要继承FragmentStatePagerAdapter替换掉FragmentPagerAdapter我试了试没管用。后来在解决如下 此方法为初始化ViewPagerprivate void init() { fragmentsList = new ArrayList(); manager原创 2016-02-04 09:45:01 · 16455 阅读 · 13 评论 -
新特性recyclerview 实现瀑布流
RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来,用户只要实现自己的viewholder就可以了,该组件会自动帮你回收复用每一个item。 RecyclerView本身提供了三个LayoutManager的实现LinearLayoutManagerGridL原创 2015-11-11 22:46:01 · 1064 阅读 · 0 评论 -
Android版本检测升级
我们应该都有类似的使用体验,当一款APP需要更新是,进入界面会提醒有新的更新是否更新,这里有那么几个步骤1首先检测当前版本 2判断服务器中版本 3如果有更新则点击更新,下载安装包,下载完成后自动安装具体代码怎么实现呢?下面我们一起看一下 /* * 获取当前程序的版本号 */ private String getVersionName() throws Exce原创 2015-11-09 14:49:26 · 2229 阅读 · 2 评论 -
内存溢出(OOM)and内存泄露---及其解决
那么问题来了什么是内存溢出out of memory?(OOM)已有数据超出其分配内存所能存储的范围 比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。什么是内存泄露memory leak? 指程序在申请内存后,无法释放已申请的内存空间,他们到底啥关系?一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致ou原创 2015-11-08 14:56:03 · 3255 阅读 · 0 评论 -
Android TouchEvent事件传递机制
跟touch事件相关的3个方法: public boolean dispatchTouchEvent(MotionEvent ev); //用来分派event public boolean onInterceptTouchEvent(MotionEvent ev); //用来拦截event public boolean onTouchEvent(MotionEvent ev);转载 2015-11-07 22:21:33 · 1687 阅读 · 0 评论 -
深入透析Android事件分发机制
一、 Android分发机制概述: Android如此受欢迎,就在于其优秀的交互性,这其中,Android优秀的事件分发机制功不可没。那么,作为一个优秀的程序员,要想做一个具有良好交互性的应用,必须透彻理解Android的事件分发机制。 要想充分理解android的分发机制,需要先对以下几个知识点有所了解:① View和ViewGroup什么?② 事件③ View 事件的转载 2015-11-07 15:33:03 · 1885 阅读 · 0 评论 -
SwipeRefreshLayout
swipeRefrensh是谷歌推出的下拉刷新组件,之前一直使用第三方的或者自定义的。SwipeRefreshLayout字面意思是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1效果还算不错的 下面学习一下如何使用:主要分一下几个步骤1首先在布局文件中引入下拉刷新组件 <android.support.v4.原创 2015-11-06 16:04:50 · 1052 阅读 · 0 评论 -
JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大转载 2015-10-30 10:33:02 · 1488 阅读 · 11 评论 -
Android开发工程师必看面试题:java基础知识盘点
面向对象编程(OOP) Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用 增强代码的可靠性和灵活性 增加代码的可理解性。面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其原创 2015-10-29 10:46:32 · 3171 阅读 · 2 评论 -
Android开发工程师必看面试题:(三)
1、什么是ANR 如何避免它?http://blog.youkuaiyun.com/Zengyangtech/archive/2010/11/21/6025671.aspx2、什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?3、Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?诺有的话会导致什么问题?如何解决?会有运行时异常, 运行时异原创 2015-10-28 12:37:51 · 2915 阅读 · 1 评论 -
Android开发工程师必看面试题:(二)
请描述下Activity的生命周期。 创建 oncreate - 启动onstart – 恢复 onResume – 暂停 onPause – 结束 onEnd – 销毁onDestroy如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 在”暂停 onPause” 状态将数据保存。如何将一个Activity设置成窗口的样式。 设置Theme。如何退出Act原创 2015-10-28 12:34:09 · 1142 阅读 · 0 评论 -
Android开发工程师必看面试题:(一)
Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗?Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_T原创 2015-10-28 12:26:40 · 1323 阅读 · 0 评论 -
Android开发工程师必看笔试题:Java基础选择题(一)
1.在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。(单选) A) FileInputStream B) FileReader C) FileWriter D) File 2. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是()(单选) A) ArrayList和Linked原创 2015-10-27 08:41:24 · 7998 阅读 · 0 评论 -
Android 的消息机制(Handler消息传递机制)
出于性能优化考虑,android的UI操作并不是线程安全的,这意味着意味着如果有多个线程并发操作UI组件,可能导致线程安全问题,未解决此问题, 从开发的角度来说, Handler 是 Android 消息机制的上层接口, 这使得在开发过程中只需要和 Handler 交互即可。 Handler 的使用过程很简单,通过它可以轻松地将一个任务切换到 Handler 所在的线程中去执行。很多人认为原创 2015-10-24 21:26:26 · 2758 阅读 · 2 评论 -
android的xUtils框架
xUtils 简介通过反射和注解来简化代码目前xUtils主要有四大模块: DbUtils模块: android中的orm框架,一行代码就可以进行增删改查; 支持事务,默认关闭; 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名); 支持绑定外键,保存实体时外键关联实体自动保存或更新; 自动加载外键关联实体,支持延时加载原创 2015-10-24 20:57:18 · 1314 阅读 · 0 评论 -
使用MediaPlayer和SurfaceView播放视频
前面介绍了使用VideoView播放视频,使用VideoView播放视频简单方便,但是习惯使用MediaPlayer的开发者还是使用MediaPlayer;MediaPlayer本身主要用于播放音频,没有提供视频输出画面,需要借助SurfaceView,VideoView是其子类;播放视频步骤: 【1】布局文件加入SurfaceView <uses-permission android:name原创 2015-10-23 13:22:46 · 2537 阅读 · 0 评论 -
Android -SQLite数据库存储
android 系统集成了一个轻量级的数据库,SQLite只是一个嵌入式的数据库引擎;android提供SQLiteDatabase代表一个数据库,一旦应用程序获得了SQLiteDatabase对象,接下来就可以通过SQLiteDatabase对象来操作管理数据了,下面分别就创建数据库以及增删改查给出例子; 数据库创建的位置如下 android操作SQLite需要继承自SQLiteOpenHelp原创 2015-10-23 11:02:29 · 2054 阅读 · 3 评论 -
android多媒体——6步学会MediaRecorder录音
MediaRecorder即录音 要想使用首先查看API,可以看到MediaRecorder的生命周期 API不仅给了生命周期图,还有例子如下MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat原创 2015-09-20 09:35:22 · 1800 阅读 · 0 评论 -
android多媒体——4步学会SoundPool
之前学习过了MediaPlayer用于播放手机音乐,但是在手机中很多的提示音并不是使用MediaPlayer来播放的比如短信铃声,通知铃声,android中使用SoundPool来播放小的音频文件;下面一起学习SoundPool的使用 【1】先搭界面设置一个按钮用于播放开始【2】得到SoundPool查看API,得知要得到SoundPool根据版本不同有两种方式 21版本以前使用 Sou原创 2015-09-20 09:31:07 · 1283 阅读 · 0 评论 -
android属性动画Property
1、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有一个颜色的切换动画;你希望可以使用3D旋转动画;你希望当动画停止时,View的位置就是当前的位置;这些View An转载 2015-09-19 23:08:44 · 992 阅读 · 0 评论 -
轻松学会android中补间动画
补间动画是什么?我们在开发一个动画的时候,开发者没必要完成动作的每一帧,只需要定义开始和结束的关键帧,剩余中间部分,是由android自动计算并实现的;大体可以分以下四类:透明度动画AlphaAnimationAlphaAnimation (float fromAlpha, float toAlpha) 参数说明 fromAlpha:开始时刻的透明度,取值范围0~1。 toA原创 2015-09-19 21:48:39 · 712 阅读 · 0 评论 -
android自定义View——Bitmap使用详解
先看一个效果图 本节课程实现完成右图效果(三步)以及保存涂鸦过的图片步骤【1】将背景Bitmap图片画到底层canvas上 bitmapBackground = BitmapFactory.decodeResource(getResources(), R.mipmap.cc); //把背景图 画到底层,在底层抠图全屏大小,将原图放大后匹配到抠图上面 canvas.drawBit原创 2015-09-18 23:02:21 · 5998 阅读 · 2 评论 -
android自定义组件(手机加速球+水面波动效果)
先看效果 本项目实现起来大体上我们分三步讲解【1】水面波动效果实现代码首先画出波浪线,通过通过贝塞尔曲线 for (int i = 0; i < 20; i++) { path.rQuadTo(20, size, 40, 0); path.rQuadTo(20, -size, 40, 0); } 然后让曲线动起来private Han原创 2015-09-18 19:28:24 · 2214 阅读 · 0 评论 -
android多媒体——5步学会使用系统相机
使用系统相机拍照并返回照片步骤如下 【1】权限 <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>【2】通过intent启动相机 Intent intent = new Int原创 2015-09-18 19:27:45 · 1687 阅读 · 0 评论 -
android图像图像处理——自定义组件的属性
自定义组件的属性步骤如下【1】在Values资源文件下新建myview.xml<resources> <declare-styleable name="myview"> <attr name="myview_background" format="reference"/> <attr name="myview_paintwidth" format="refer原创 2015-09-18 15:53:25 · 2690 阅读 · 2 评论 -
微信联系人右侧字母滑动索引
实现思路:通过自定义View在频幕右侧循环写入a~z;复写onTouchEvent @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE:原创 2015-09-17 20:30:18 · 6327 阅读 · 0 评论 -
5步学会使用VideoView 播放视频
我们可以试想ImageView能显示图片,而VideoView就是用来显示视频的 使用VideoView播放视频的步骤如下 【1】在界面布局中定义VideoView<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/原创 2015-09-18 07:26:11 · 11441 阅读 · 0 评论 -
android图形图像处理PorterDuffXfermode
设置两张图片重叠的模式。 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint;如果它是部分透明的,那么它将会被染上下面的颜色。 而setXfermode就可以来解决这个问题 . 举例重叠的图层使用BitmapCanvas画布。。注意下面public class MyBitmapView2 extends Vi原创 2015-09-17 20:22:50 · 1922 阅读 · 0 评论 -
Bitmap,使用Matrix对图像几何变换
【Bitmap】Android几种简单的获取Bitmap位图实例 1、通过BitmapFactory获取BitmapFactory.decodeResource(Resources res, int Id); //参数一:资源实例 参数二:资源ID 2、通过Bitmap获取任意宽高或获取位图中任意区域Bitmap.createBitmap(Bitmap source, int x, int原创 2015-09-17 20:11:10 · 3181 阅读 · 0 评论 -
android绘图Path类仿加速球水面波动效果
android提供的Path类,他可以预先在View上连成路径,然后调用Canvas的drawPath(path,paint),沿着路径画出来即可; 【1】画三角形// path.moveTo(100, 100);// path.lineTo(0, 200);// path.lineTo(200, 200);// path.close(原创 2015-09-17 19:57:17 · 1873 阅读 · 0 评论 -
android四大组件之BroadcastReceiver
BroadcastReceiver介绍BroadcastReceiver用于接收程序(包括用户开发的程序和系统内部的程序)所发出的Broadcast Intent用法程序启动BroadcastReceiver只需要两步 1 创建需要启动的BroadcastReceiver的Intent 2 调用Context的sendBroadcast()或sendOrderedBroadcast()方法来启原创 2015-09-08 21:10:35 · 1082 阅读 · 4 评论 -
安卓学习路线
一直以来想写点东西,关于学习安卓,也算是缘分吧,大学时候听说过安卓开发,那时候的感觉是有点高大上,但是心里觉得安卓还是挺有意思挺好玩的的,我是通信工程专业,大多电子类专业基本课程应该都是差不多的,大二时候同学都去实验室参加电子设计大赛,我呢也去过一阵子,也想向大家一样参加个比赛啦,得个奖什么的,但是毕竟人很多,后来也没参会加上比赛,但是单片机课程算是我们专业最有乐趣的,学好了,可以自己做个遥控小车原创 2015-09-16 22:47:12 · 1308 阅读 · 8 评论