Android Demo
文章平均质量分 92
linmiansheng
邮箱 :sheepjtgjfc163.com
展开
-
Android动画学习Demo(1) 关于ViewAnimation的用法及总结
在Android系统中,提供了两种动画框架:1)View Animation(视图动画),而View Animation 里面又包含了下面两种模式 1.1)Tween Animation (也称之为View Animation) 1.2)Frame Animation (也称之为Drawable Animation)2)Property Animation(属性动画),这是在Android 3.0(API Level 11)之后才支持的框架。所以,不考虑层次,只考虑实现,Android中就存在以下原创 2014-01-23 00:33:11 · 6329 阅读 · 2 评论 -
Android学习小Demo(12)TodoList实现ListView的分组实现
很多情况下, 我们想要ListView上面展示的东西是可以分组的,比如联系人列表,国家列表啊,这样看起来数据的展现比较有层次感,而且也有助于我们快速定位到某一个具体的条目上,具体效果请看下图:这是前面TodoList小demo的MainActivity,主要是来展现用户添加的任务的,在原来的基础上添加了分组的效果。...首先我们定义了下面两个数组,并且需要在构造的时候初始化它们: private int[] sectionIndices; private String[] sectionHead原创 2014-03-08 17:37:11 · 8697 阅读 · 24 评论 -
Android学习小Demo(9)一个To Do List的实现
记得看过一篇文章,是说一个人临走之前,列下了想做的最后100件事情,然后拿着这张便签,一件一件地去实现。又想起乔布斯说,如果今天是你的最后一天,你会怎么过?我有很多事情想做,想写很多的文章,但是时间真的很不够用,妹妹说想把一天当做两天用,但是我想拆成三四天用。。。这个小程序是我写来放在手机里,写上自己想做的事情,然后一件一件地完成,人生很短,真的很短。。。。嗯,没错啦,这个小demo就是对前面咱们讲过的那么多知识的一个很好的应用。光学总归是不够的,还是需要亲自去动手去做,去实践,才能够真正做到用啊原创 2014-02-20 23:59:09 · 3159 阅读 · 1 评论 -
Android学习小Demo(14)Android中关于PopupWindow的使用
在一些场景中,我们希望能够点击按钮, 然后弹出一个菜单,而这个菜单是显示在屏幕的中央的,那么在Android中可以通过PopupWindow来实现这个效果。...如上图中,我们点击“添加图片”按钮,然后在屏幕中央就弹出了一个菜单,可供我们选择“照相”,还是到“图库”中去选择。下面我们来看一下具体实现:...首先利用 LayoutInflater 将我们的布局 pw_take_photo.xml 给解析出来,然后调用 PopupWindow的构造函数,将 popupView 传给它,并同时指定宽度是原创 2014-03-17 00:03:23 · 3704 阅读 · 0 评论 -
Android学习小Demo(15)一个自定义AlertDialog的实现
在Android的应用中,很多时候,都会利用到 AlertDialog 来弹出信息,或者让用户进行选择,或者告知用户某些信息,而系统自带的背景效果,一般不能够满足需求,所以很多时候,就会存在自定义 AlertDialog 的需求。其实不仅是AlertDialog,为了完善一款应用,很多控件都需要自定义,比如前面文章中提到过的EditText 等。今天就讲一下如何在Android中自定义 AlertDialog,请先看下面的效果图:...在这个style中,a)会将Dialog的windowBackg原创 2014-03-18 00:03:57 · 3337 阅读 · 0 评论 -
Android学习小Demo(16)Android中使用已存在数据的SqliteDatabase
在Android中使用数据库,在一些情况下,需要导进一个已经有数据的数据库,然后在程序中去调用它,来实现我们的功能。比如在一个查询信用卡归属银行的小demo中,在输入框输入信用卡的前6位号码(这6位号码决定了信用卡的归属银行),点击查询按钮,就可以将其对应的银行给显示出来。下面我们来看看,程序中是如何实现这个功能的。1)Asset文件夹在Asset文件夹下面放上我们的数据库:...2)创建一个CreditCardDb类。在这个类中,我们要实现以下几个功能:2.1)要将数据库从assets原创 2014-03-31 21:58:47 · 2027 阅读 · 0 评论 -
Android学习小Demo(17)关于ViewPager和Fragment的使用
很多时候,一个应用有多个功能点,分属于不同的类别,存在这样的需求,不同的布局展示不同的功能,那么Fragment和ViewPager就是一个很好的帮手了。而Fragment是3.0以后才提供的一个功能,所以在3.x之前的,如果要用Fragment的话,就要用support v4包了。在Eclipse中升级到最新版的ADT之后,会发现通过Wizard来创建的Android项目,都默认会用Fragment来作为处理事务的主要逻辑窗口,而Activity则不再干这事了,这可能是Android想要强推Fragm原创 2014-04-09 19:36:49 · 4023 阅读 · 0 评论 -
Android学习小Demo(19)利用Loader来实时接收短信
而本文介绍的是另外一种方法,利用Loader来实现差不多的效果,既然能够说效果差不多,那么就说明了Loader有一个跟ContentObserver的特性,没错,它能够检测到对应内容的变化。先简单说一下什么是Loader。Loader是Android在3.0之后才引进的一个类,其主要目的在于让Android跟Data之间的交互变得更加简单和高效,概括起来,我觉得其功能有以下两点:1)动态监测所处理对象状态的变化,大部分情况下是处理数据,但我觉得只是一方面。2)当界面变化,需要被重新创建的时候,它们能原创 2014-05-15 00:03:15 · 1983 阅读 · 1 评论 -
Android学习小Demo(18)Todo List 仿QQ删除任务
删除按钮一开始是invisible的,当Down事件发生的时候,我们要将其置为Visible的,但同时要将其alpha值置为0,因为虽然可见,但此时还不能显示出来。而最后,要在这里返回一个true,表明在这里,Down事件已经被这个OnTouchListener给消费了,这样,后续的Move事件, Up事件才会继续被这个OnTouchListener来处理。2)当Donw事件被这个OnTouchListener消费后,后续的Move事件也会来到这里进行处理。在Move分支中, 我们要根据移动的距离来判原创 2014-04-14 11:34:34 · 2741 阅读 · 8 评论 -
Android学习小Demo(20)关于Fragment的应用
Android在3.0之后引入了Fragment的概念,我猜测其想法可能只是想更好地兼容大屏幕或者平板的开发,因为大屏幕可以展示更多的内容,而内容一多,逻辑有可能就乱,而利用Fragment,则可以将不同的逻辑封装进不同的Fragment中,但是展现呢,还是在同一个Activity中,在同一个屏幕上显示。而对于屏幕并不大的手机来说,如果一个页面展示的东西并不多,那么其实将逻辑直接写在Activit原创 2014-06-05 17:52:49 · 2245 阅读 · 0 评论 -
Android学习小Demo(21)ListView的联动选择
在日常的App开发中,尤其是在开发生活服务的应用上,很多时候,我们会需要联动地展现省市区的数据等,需求大概如下:1)展现所有省份2)当点击某省份的时候,在二级菜单上展现此省份下面所属的城市列表3)选中返回,显示我们选中的城市4)当重新进入选择页面的时候,标识出我们上一次选中(或者说当前已民选择)的值原创 2014-07-18 00:01:37 · 6276 阅读 · 1 评论 -
Android学习小Demo(22)带删除按钮的TextView
我们创建了一个ClearableTextView,继承于TextView,关键的代码如下:1)设置CompoundDrawables。2)必须重载onTouchEvent方法。这是因为在TextView中设置四边的图标时,并没有提供其对应的点击事件,所以这就需要我们自己去拦截用户的点击事件,判断用户的点击区。。。3)定义一个接口,用来由外部实现,可在图标点击事件时触发处理,如下:4)为了让文字不存在的时候,删除按钮不出现,我们可以自己定义一个setTextClearable方法,里面包装了Text原创 2014-11-29 14:19:43 · 4618 阅读 · 0 评论 -
Android学习小Demo(23)Aidl实现进程间通信
我们知道,Android是靠Binder机制来实现进程间的通信,而上一篇文章中,我们利用AIDL,简单地从代码方面的角度讲解了在服务端中的Binder的存在形式,是以服务的实现存在的,而在客户端,则是以代理的形式,实现存在的只是一个关于服务端的Binder实现的引用。理论上的东西我们要去学习掌握,但是也不能忽略了实际的动手能力,对吧。今天,我们就一步一步地利用我们所了解地关于AIDL的知识,并且实现我们自己的小Demo。原创 2015-01-18 15:56:14 · 2985 阅读 · 0 评论 -
Android学习小Demo(10)ToDoList的加强版
前两天去超市逛东西,问老板娘这个东西多少钱,那个东西多少钱,但是一两分钟后就搞混了,当时就想,我不是写了一个todo的吗,可以再拍照放上去,这样就有对比啦!于是兴冲冲地赶回家,把功能给实现了,虽然这功能到处都有,但是自己实现出来的就是不一样啊,界面丑点也是自己的孩子啊,而且这孩子会长大啊,可以继续完善的嘛。先上几张效果图:...由上面两张图可以看到:1)在屏幕上方专门挖出了两块地来放两个Image2)在右下角放了两个button,一个是挑选图片,一个是直接打开照相机照相,然后返回的图片就会放到这两原创 2014-02-26 00:03:07 · 3916 阅读 · 2 评论 -
Android学习小Demo(10)ToDoList的改进版之ViewPager显示多个图片
在TodoList增强版的增加界面上,为了显示图片,我是挖了两块地方,放了两个ImageButton,来显示图片,而且限制了最多只能放两张图片。当两个View都放置图片之后,我就会把“Gallery”和"Camera"的两个按钮给隐藏掉,如下图红框显示中,已经没了:我们在这个位置放一个Layout(什么样的Layout都可以,我原来是用一个FrameLayout的,但代码中有点问题,我以为是它的问题,就改成LinearLayout,然后就忘了改回去了。)Layout里面会放一个ViewPager(这是v原创 2014-02-27 22:59:08 · 4410 阅读 · 7 评论 -
Android动画学习Demo(2) 关于Property Animation的用法及总结
在上一篇文章中,我们知道了关于View Animation的用法及其一些局限性,而在3.0之后,Android 引入了Property Animation 的框架,弥补了View Animation的一些短板,使得我们在Android中能够更好地借助框架去实现更复杂更好的动画效果,从而创造出漂亮的用户体验。...这一篇文章我们先来了解 一下Property Animation的一些用法,在知其然的基础上,下一篇文章我们再来讨论Property Animation的机制原理。首先我们要先了解关于View原创 2014-01-24 00:06:28 · 13248 阅读 · 1 评论 -
Android动画学习Demo(3) 关于Property Animation的TimeInpolator和TypeEvaluator
Property Animation中最重要,最基础的一个类就是ValueAnimator了。Property Animation利用ValueAnimator来跟踪记录对象属性已经变化了多长时间及当前这个时间点的值。...总的来说,就是三步:1)将时间的消逝 t 和时长 duration 的比例fraction,传给interpolator 算出一个新的fractionNew。2)将这个fractionNew传给TypeEvaluator,算出对应属性的当前值animatedValue。3)根据原创 2014-01-26 20:18:39 · 9030 阅读 · 2 评论 -
Android学习小Demo(6)图片折叠效果的实现
因为分成的第一份都要实现一个往后推的效果,所以分成多少份,对应的我们也要为各个长方形准备对应的matrix来实现变化,所以在下面也会同时new出一个matrix。2)分成相同的等份之后,我们就要考虑如何为每一个长方形设置变化的矩阵了。2.1)分析拆分出来的矩形区域及折叠时候的效果,可以发现,偶数位(从0开始)的矩形是右边的那两个角往后推,而奇数位的矩形则刚好相反,当偶数位的矩形在往后推的时候,奇数位的矩形则相对着其也在往后推,并且在往后推的同时,每个矩形的宽度缩小的比例也是一致的。所以根据这几点,我们可原创 2014-02-01 23:17:41 · 5024 阅读 · 2 评论 -
Android学习小Demo(4)贝塞尔曲线跟翻页效果
第一次看到翻页效果的时候,觉得真是厉害,真是想不出是怎么做的呢(唉,牛人的智商真是只能仰望!)。直到看了Android 实现书籍翻页效果----原理篇 一文,看了何明桂对翻页效果的一张图解,看到贝塞尔曲线,才恍然大悟,只能内心赞叹了。下面先看看图(这张图是直接拿何明桂大牛的,请多多包涵):这里是是以右下角为起点来翻页的,但其实只要将右下角的 f 点设成一个变量(它可以是任何一个原创 2014-01-21 00:27:43 · 5965 阅读 · 3 评论 -
Android学习小Demo(5)结合Matrix跟Porperty Animatin 实现推拉门效果
在Android中,实现3D的效果,可以通过OpenGL/ES,Camera,也可以通过Matrix的PolyToPoly来实现。OpenGL比较复杂麻烦,但是其实现的效果也最好,在游戏制作中利用的比较多,而Camera是Android中提供的一个包装好的类,模拟了一个观察点,通过改变这个观察点,从而实现纵深的变化,达到3d的效果。我们前两篇文章都在讲Matrix,那么这一章我们也通过Matrix,再通过属性动画中ValueAnimator的应用, 来简单实现一个推拉门的效果吧。...这里我们看到po原创 2014-02-01 16:18:34 · 4211 阅读 · 3 评论 -
Android学习小Demo(7)SharedPreference的使用
在Android系统中,有各种不同的存储方式,而SharedPreference就是其中最简单的一种。SharedPreference本质上就是一个xml文件,其存储结构则是一个Map,里面的值都是以键值对<Key,Value>的形式存在,如下图:...可以看到根结点是一个<Map>元素,下面的每一个元素都是我们存进去的值,分别对应不同的基本属性,sharedpreference也仅支持这些简单的基本属性。因为其简单,所以一般来说,我们用sharedpreference来存储一些简单的状态信息,比如原创 2014-02-08 23:58:35 · 3026 阅读 · 0 评论 -
Android学习小Demo(8)SQLiteDatabase的使用
在Android中,除了我们之前说过的sharedpreference可以用来保存数据之外,SQLiteDatabase应该是使用得最广泛的一种数据保存方式。SQLite是一个嵌入式的数据库,支持一般数据库的增删查改,如果大家对数据库有一定的了解的话,会发现,其实这也是很简单的一种使用方式。今天我们就来看一下在Android中,SQLiteDatabase的实际应用。。。。在这个类中,我们要实现三个函数:1.1)构造函数,要调用父类的构造函数,将数据库名和版本(DB_NAME和VERSION)传进原创 2014-02-12 22:24:43 · 2980 阅读 · 0 评论 -
Android学习小demo(3)自定义ViewGroup 利用 scroller 实行屏幕滚动
前面一篇博文《关于View的ScrollTo, getScrollX 和 getScrollY》,我们讲解View 的scrollTo() 和 getScrollX() 的功能,也提到了它们其实是一般是配合scroller 类来进行屏幕的滑动的。有的朋友可能会问,为什么有了scrollTo() 之后,还要有scroller 类呢,区别在于,scrollTo() 和 scrollBy() 他们原创 2014-01-09 08:48:07 · 3957 阅读 · 7 评论 -
Android学习小Demo(11)一个显示行线的自定义EditText
今天在处理一个EditText的时候,想着把EditText做成像一本作业本上的纸一样,每一行都可以由线条隔开,具体效果如下:1)最开始的思路一开始的想法是很简单的,找出每一行的高度,然后一行一行地画线不就好了吗,代码如下: viewHeight = getMeasuredHeight(); viewWidth = getMeasuredWidth();原创 2014-03-07 00:11:58 · 5285 阅读 · 1 评论 -
Android学习小Demo(13)Android中关于ContentObserver的使用
在一些应用上,比如手机银行,QQ,微信等,很多时候我们都需要通过发送验证码到手机上,然后把验证码填上去,然后才能成功地继续去做下面一步事情。而如果每次我们都要离开当前界面,然后去查收短信,记住验证码,然后再回来输入到控件中,这感觉就会很麻烦,用户体验就会很差,而像微信等一些应用,则会在手机接到短信后,将信息中的验证码给抽出来,帮我们将其填到对应的控件中,多方便,对吧。这个功能就是通过ContentObserver来实现的。顾名思义,Content Observer,就是内容监听,它实现的功能就是对特定的原创 2014-03-11 23:59:58 · 2689 阅读 · 1 评论 -
Android学习小demo(1)自定义View
在Android的开发中,很多时候系统提供的View已经不能够满足我们的要求,自定义View的需求自然而然就出来了。实现自定义的View,其实就是去扩展View类,重写其某些方法函数,把原来由Android Framework 实现的东西,让我们自己来实现自己想要的某些效果。其本质上就是封装了一些自己想要的效果,并使之能够被Framework识别,跟普通的系统的控件一样,可以重复利用。原创 2014-01-02 21:46:32 · 3106 阅读 · 2 评论 -
Android学习小demo(2)自定义ViewGroup
前面学习了怎么自定义View (Android学习小demo(1)自定义View), 这一个小demo, 我们接着来学习怎么自定义ViewGroup.ViewGroup, 本质上也是一个View, 不过它增加了一个属性,就是能够去包含其他的View, 甚至是其他的ViewGroup, 故名思义, Views' Group.既然是众多的View 在一起展现,那么这些View 到底是展现在原创 2014-01-07 00:21:14 · 2609 阅读 · 1 评论 -
RecycleView的基本使用方法
为什么要使用RecycleView,而不再使用ListView记得每一次在用ListView的时候,在Adapter中,总是需要我们自己去创建一个ViewHolder,去存储ListItem的布局,这么做的原因在于findViewById()是一个很耗时间的操作,所以我们需要一个静态的对象将layout过的控件给保存起来,下一次刷新这个item的时候,就不再需要调用findViewById去View原创 2015-12-22 18:28:37 · 5619 阅读 · 1 评论