随笔分类 -  android提高篇

摘要:自从之前发布了《Android 实现书籍翻页效果----完结篇 》之后,收到了很多朋友给我留言,前段时间由于事情较多,博客写得太匆忙很多细节地方没有描述清楚。所以不少人对其中的地方有不少不明白之处,也有不少人 对其中出现的Bug进行了反馈。今天终于找出了段时间对这段时间的一些问题做个简单的总结。 之前给出的例子只是能使书籍进行简单的拖拽,没有实现翻页的动画效果,很多人希望我能加上这一个,所以首先我们就来说说这个翻页的动画。 其实翻页的动画很容易实现,只要在Touch抬起后不断的刷新mTouch.x,mTouch.y的值就行了,你可以使用handler,thread,也可以使用Scroller. 阅读全文
posted @ 2014-03-07 10:03 brave-sailor 阅读(851) 评论(0) 推荐(0)
摘要:By 何明桂(http://blog.csdn.net/hmg25)转载请注明出处 之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在android上也有像laputa和ireader等应用实现有这个特效,在网上搜索了一下好像也没有现成的例子,所以自己动手实现了一个,现在将实现的过程记录下来。 By 何明桂(http://blog.csdn.net/hmg25)转载请注明出处实现真实的翻页效果,为了能在翻页的过程中看到下一页的内容,在翻页之前必须准备两张页面,一张是当前页,另一张是下一页。翻页的过程就是对这两张页面的剪切,组合过程。用户看到的可以分为3部分:当前页的可见部分(下图 阅读全文
posted @ 2014-03-07 10:02 brave-sailor 阅读(622) 评论(0) 推荐(0)
摘要:上篇介绍了使用Animation实现3D动画旋转翻页效果,现在介绍图片倒影实现,先看效果图本示例主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现1、倒影绘制ImageAdapter继承自BaseAdapter,详细实现可见Android 滑动效果入门篇(二)—— Gallery这里重点介绍倒影原理及实现倒影原理:倒影效果是主要由原图+间距+倒影三部分组成,高度大约为原图的3/2(原图为1、倒影为1/2)原图,就是我们看到了最开始的图片间距,是原图与倒影之间的间隙,如:reflectionGap = 4;倒影,是原图下半部分1/2高度,通过矩阵变换mat 阅读全文
posted @ 2014-03-07 09:58 brave-sailor 阅读(347) 评论(0) 推荐(0)
摘要:前面介绍了利用Android自带的控件,进行滑动翻页制作效果,现在我们通过代码实现一些滑动翻页的动画效果。Animation实现动画有两个方式:帧动画(frame-by-frame animation)和补间动画(tweened animation)本示例通过继承Animation自定义Rotate3D,实现3D翻页效果。效果图如下:1、Rotate3D(Animation)首先,自定义Animation的3D动画类Rotate3D[java] view plaincopyprint?publicclassRotate3DextendsAnimation{privatefloatfromDeg 阅读全文
posted @ 2014-03-07 09:56 brave-sailor 阅读(483) 评论(0) 推荐(0)
摘要:Android系统自带一个GridView和Gallery两个控件,GridView网格显示,Gallery单个浏览,两者结合起来可以真正实现Gallery浏览图片效果。本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果。效果图如下:1、GridView首先,自定义一个GridImageAdapter图片适配器,用于填充GridView控件的图片[java] view plaincopyprint?publicclassGridImageAdapterextendsBaseAdapter{privateContextmContext;Dr 阅读全文
posted @ 2014-03-07 09:55 brave-sailor 阅读(234) 评论(0) 推荐(0)
摘要:Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好。本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果。效果图如下:1、基本原理在 Activity 中实现OnGestureListener 的接口onFling() 手势事件,通过自定义的 View绘制draw() 图片2、ActivityActivity中,通过onTouchEvent() 注册myGesture.onTouchEvent(event)[java] view plaincopyprint?@Overridepubli 阅读全文
posted @ 2014-03-07 09:54 brave-sailor 阅读(348) 评论(0) 推荐(0)
摘要:Gallery 是Android官方提供的一个View容器类,继承于AbsSpinner类,用于实现页面滑动效果。从上面的继承关系可以看出,AbsSpinner类继承自AdapterView,因此我们可以自定义实现Adapter,来填充Gallery容器的数据。本示例通过自己实现一个Adapter,来填充Gallery容器的图片数据,首先看效果:Activity[java] view plaincopyprint?importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.wi 阅读全文
posted @ 2014-03-07 09:53 brave-sailor 阅读(311) 评论(0) 推荐(0)
摘要:ViewFilpper是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换,也可以设定时间间隔,让它自动播放。又ViewAnimator继承至于FrameLayout的,所以ViewFilpper的Layout里面可以放置多个View,继承关系如下:本示例通过ViewFlipper和GestureDetector.OnGestureListener实现自动播放和手势滑屏事件,先看效果:Activity[java] view plaincopyprint?importandroid.app.Activity;importandroid.os.Bundl 阅读全文
posted @ 2014-03-07 09:52 brave-sailor 阅读(312) 评论(0) 推荐(0)
摘要:ViewGroup的官方解析是: A ViewGroup is a special view that can contain other views (called children.) The view group is the base class for layouts and views containers. 其类定义如下:public abstract class ViewGroup extends View implements ViewParent, ViewManager首先是View的子类,并且实现两个接口,这两个接口中分别包含着极为重要的方法,可以说代表着ViewGr. 阅读全文
posted @ 2014-03-05 01:24 brave-sailor 阅读(735) 评论(0) 推荐(0)
摘要:SlidingMenu是一个开源项目, https://github.com/jfeinstein10/SlidingMenu 。功能是创建侧边滑动菜单栏,效果类似人人Android客户端,可点击按钮或是在屏幕上划动来展开,收缩侧边的菜单。下面是Demo效果图: 简单介绍一下:整个demo由三个Fragment,一个Activity组成,菜单一个Fragment,包含两个按钮,在内容区域切换显示FragmentA和FragmentB. 项目用了AndroidAnnotations框架。 MainActivity: 1234567891011121314151617... 阅读全文
posted @ 2014-03-05 01:05 brave-sailor 阅读(875) 评论(0) 推荐(0)
摘要:主要是写一个 color selector在res/建一个文件夹取名colorres/color/color_radiobutton.xml[html] view plaincopy程序中就可以直接使用了[html] view plaincopy//layout/main.xml 阅读全文
posted @ 2014-03-04 17:06 brave-sailor 阅读(1378) 评论(0) 推荐(0)
摘要:关键的句子是:android:button="@null" 删除原本系统默认在左的选择框android:background="@android:color/transparent" 去除左边选择框被删除后的空白android:drawableRight="@android:drawable/btn_radio" 选择框绘制在右 阅读全文
posted @ 2014-03-04 15:13 brave-sailor 阅读(3947) 评论(0) 推荐(0)
摘要:publicclassMainActivityextendsActivity{privateButtondefaultbutton=null;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalLinearLayoutlayout=(LinearLayout)findViewById(R.id.layout);//默认皮肤defaultbutton=(Button)findViewById(R.id. 阅读全文
posted @ 2014-02-28 14:05 brave-sailor 阅读(309) 评论(0) 推荐(0)
摘要:现在很多APP都有换肤的功能,例如微博,QQ等应用。这些应用的换肤原理是什么?在用微博的时候,不难发现,当你要换肤时,先下载并安装一个皮肤apk,然后选择这个皮肤,就可以了。这种方式就是把皮肤打包成一个APK,然后在主程序中访问这个皮肤APK中的资源。这种方式需要涉及到两个应用之间的数据访问了。那如何做到应用间的数据访问呢?这就得用到Android shareUserId这个属性了。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据.假设有一个应用叫main,一个皮肤APK叫skin,那么在main应用以及ski 阅读全文
posted @ 2014-02-28 13:10 brave-sailor 阅读(863) 评论(0) 推荐(0)
摘要:本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的。在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案。但在Android中开源方案并不多。Android中绘制图表解决方案:1) 使用google 图表 api 2) 使用Achartengine库(http://www.achartengine.org/) 3) 使用chartdroid库(http://code.google.com/p/chartdroid/)4) 使用RChart 2库实现。第一种解决方案是使用google的图表API。可以到如下这... 阅读全文
posted @ 2014-02-26 11:09 brave-sailor 阅读(319) 评论(0) 推荐(0)
摘要:ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。这个引导图效果用ViewPager可以很轻松的实现。正如前面所说,ViewPager是用来展示一组数据的,所以肯定需要Adapter来绑定数据和view。先写一个Adapter:[java] view plaincopypackagecom.notice.viewpagerd;importjava.util.Lis 阅读全文
posted @ 2014-02-25 14:04 brave-sailor 阅读(194) 评论(0) 推荐(0)
摘要:上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。还有个问题,当用户从网络上读取微薄的时候,如果一 下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容。这时候,我们就需要用到另一个功能,那 就是listview的分页了。通过分页分次加载数据,用户看多少就去加载多少。通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图:[h 阅读全文
posted @ 2014-02-25 14:03 brave-sailor 阅读(194) 评论(0) 推荐(0)
摘要:关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现。最初的下拉加载应该是ios上的效果,现在很多应用如新浪微博等都加入了这个操作。即下拉listview刷新列表,这无疑是一个非常友好的操作。今天就和大家分享下这个操作的实现。先看下运行效果: 代码参考国外朋友Johan Nilsson的实现,http://johannilsson.com/2011/03/13/android-pull-to-refresh-update.html。主要原理为监听触摸和滑动操作,在listview头部加载一个视图。那要做的. 阅读全文
posted @ 2014-02-25 14:02 brave-sailor 阅读(253) 评论(0) 推荐(0)
摘要:今天继续和大家分享涉及到listview的内容。在很多时候,我们会用到listview和checkbox配合来提供给用户一些选择操作。比如在一个 清单页面,我们需要记录用户勾选了哪些条目。这个的实现并不太难,但是有很多朋友来问我如何实现,他们有遇到各种各样的问题,这里就一并写出来和大家一起 分享。ListView的操作就一定会涉及到item和Adapter,我们还是先来实现这部分内容。首先,写个item的xml布局,里面放置一个TextView和一个CheckBox。要注意的时候,这里我设置了CheckBox没有焦点,这样的话,无法单独点击checkbox,而是在点击listview的条目后, 阅读全文
posted @ 2014-02-25 14:00 brave-sailor 阅读(198) 评论(0) 推荐(0)
摘要:上网学了好多方法,关于Android的Activity如何退出。好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂。使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作Java代码 publicclassMyApplicationextendsApplication{privateListactivityList=newLink 阅读全文
posted @ 2014-02-18 16:18 brave-sailor 阅读(310) 评论(0) 推荐(0)