![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Gallery
pengjin1985
这个作者很懒,什么都没留下…
展开
-
Android4.2.2 Gallery2源码分析(1)——从布局入手 .
使用的是现有的项目的源码进行分析,它在Android原生源码之上有一些修改,主要是添加了一些功能,但整体部分仍然是原生的架构。从零开始,逐步分析。点开Gallery,进入该程序查看图片,在手机上看到的主视图如下,(图1)使用Hierarchy Viewer工具查看UI布局,此时看到的布局就是Gallery框架的主界面:(图2)PhoneWindow$DecorView—转载 2013-11-19 10:42:39 · 1423 阅读 · 0 评论 -
Android 滑动效果基础篇(四)—— Gallery + GridView
Android系统自带一个GridView和Gallery两个控件,GridView网格显示,Gallery单个浏览,两者结合起来可以真正实现Gallery浏览图片效果。本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果。效果图如下:1、GridView首先,自定义一个GridImageAdap转载 2013-11-20 14:08:52 · 722 阅读 · 0 评论 -
Android 滑动效果入门篇(二)—— Gallery
Gallery 是Android官方提供的一个View容器类,继承于AbsSpinner类,用于实现页面滑动效果。从上面的继承关系可以看出,AbsSpinner类继承自AdapterView,因此我们可以自定义实现Adapter,来填充Gallery容器的数据。本示例通过自己实现一个Adapter,来填充Gallery容器的图片数据,首先看效果:转载 2013-11-20 14:06:57 · 737 阅读 · 0 评论 -
Android 滑动效果进阶篇(六)—— 倒影效果
上篇介绍了使用Animation实现3D动画旋转翻页效果,现在介绍图片倒影实现,先看效果图本示例主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现1、倒影绘制ImageAdapter继承自BaseAdapter,详细实现可见 Android 滑动效果入门篇(二)—— Gallery 这里重点介绍倒影原理及实现倒影原理:倒影转载 2013-11-20 14:11:31 · 752 阅读 · 0 评论 -
Android 滑动效果进阶篇(五)—— 3D旋转
前面介绍了利用Android自带的控件,进行滑动翻页制作效果,现在我们通过代码实现一些滑动翻页的动画效果。Animation实现动画有两个方式:帧动画(frame-by-frame animation)和补间动画(tweened animation)本示例通过继承Animation自定义Rotate3D,实现3D翻页效果。效果图如下:1、Rotate3D转载 2013-11-20 14:10:31 · 729 阅读 · 0 评论 -
Android 滑动效果高级篇(八)—— 自定义控件(1)
自定义控件,较常用View、ViewGroup、Scroller三个类,其继承关系如下:本示例自定义控件,实现一个Gallery效果,并添加了一个显示View个数和位置的bar条,效果图:自定义控件,包含通过继承实现的自定义控件和自定义控件属性两部分,即控件和属性1、自定义属性自定义属性,分为定义属性、解析属性、设置属性三部分,具体步骤:首先,在re转载 2013-11-20 14:25:13 · 855 阅读 · 0 评论 -
Android 滑动效果高级篇(八)—— 自定义控件(2)
3、自定义控件Pager自定义控件Pager,继承自ViewGroup,用来显示图片的,类似于Gallery,实现主要部分包含:A、自定义属性解析B、Pager容器控件Scroller滑动页设置与控制C、容器状态保存(onSaveInstanceState)D、容器事件监听接口详细实现如下:A、自定义属性解析[java] view plainco转载 2013-11-20 14:26:27 · 967 阅读 · 0 评论 -
Android 滑动效果高级篇(七)—— 华丽翻页效果
本示例介绍翻页效果,借鉴参考【何明桂的小窝】的博客,效果图如下:感兴趣的朋友,可以查看【参考推荐】,原博客把原理和实现,已经讲得很清楚了,在此不再重复本示例源码下载如下:源码下载参考推荐:Android 实现书籍翻页效果----原理篇Android 实现书籍翻页效果----升级篇Android 实现书籍翻页效果----完结篇转载 2013-11-20 14:12:08 · 692 阅读 · 0 评论 -
Android 滑动效果入门篇(一)—— ViewFlipper
ViewFilpper 是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换,也可以设定时间间隔,让它自动播放。又ViewAnimator继承至于FrameLayout的,所以ViewFilpper的Layout里面可以放置多个View,继承关系如下:本示例通过ViewFlipper和GestureDetector.OnGestu转载 2013-11-20 11:04:33 · 770 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(10)——Activity于View的结合
在以往Activity中,我们大部分时候都在编写View,最后只需要在Activity的onCreate()函数中调用setContentView(new MyView())即可把对应的视图粘贴到了Activity上。在Gallery中,ActivityState代替了Activity;GLView代替了View,那么这二者是如何结合到一起的呢?虽说ActivityState替代了Activi转载 2013-11-19 16:19:26 · 1309 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(8)——假装的Activity
两周的奋战,终于对Gallery的结构有了个大致的了解。Gallery是一个很好的Android系统知识的学习源码,不仅仅因为它设计到了多线程,布局优化,Opengl的结合等等内容。还有两点必须说明的地方,一个是前文提到国的GLView.java:Gallery没有用到任何android提供的View类,而是自己写了一个融合Opengl绘图的GLView,掌握它对于理解android的View架构转载 2013-11-19 16:11:06 · 1295 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(2)——发现Gallery.java
上文中,main.xml是我直接提出来的,并没有说明是怎么找到它的,现在说明发现它的理由:一般我们分析界面布局会用到hierarchyviewer这个工具,从工具中,我们对应到视图,最主要的视图id我们找到了"gl_root_view",这一点在上一节中有说明。在Source insight中搜索这个id,我们找到了layout/Gl_root_group.xml:[html]转载 2013-11-19 11:50:26 · 1037 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(3)——分析Gallery.java
我现在的目的是找出那个相册视图为什么是空的,也就是(1)中提到的第三个疑点。下图的这个视图是在什么地方形成的。1.继承关系[java] view plaincopyprint?public final class Gallery extends AbstractGalleryActivity implements OnCancelListener转载 2013-11-19 14:09:41 · 1047 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(5)——GLCanvasImpl.java
GLCanvasImpl.java是接口GLCanvas的唯一实现类,也就是说二者在功能上完全等同。代码中调用GLCanvas对象函数的地方,等效于调用GLCanvasImpl中的该函数,GLCanvasImpl对该函数有具体的实现。1.构造函数[java] view plaincopyprint?GLCanvasImpl(GL11 gl) { mGL转载 2013-11-19 14:57:59 · 1163 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(6)——GLView.java
[java] view plaincopyprint?// GLView is a UI component. It can render to a GLCanvas and accept touch // events. A GLView may have zero or more child GLView and they form a tree // struct转载 2013-11-19 15:33:37 · 1256 阅读 · 1 评论 -
Android4.2.2 Gallery2源码分析(7)——canvas的调用堆栈
protected void render(GLCanvas canvas) { Log.d("Lich", "-------", new Throwable()); protected void render(GLCanvas canvas) { Log.d("Lich", "-------", new Throwable());上面是GLView.ja转载 2013-11-19 15:43:06 · 1316 阅读 · 1 评论 -
Android4.2.2 Gallery2源码分析(9)——三个界面的跳转
Gallery浏览图片除开编辑界面,主要有三个界面:即起始页,相册簿集合页面(AlbumSetPage);点击某个相册进入该相册的所有图片页面(AlbumPage)和再点击某张具体图片之后的图片浏览页面(PhotoPage)。我们从起始页面开始,点击某个相册:一个相册是一个SlotView对象,在onCreate()中初始化了SlotView。并且对SlotView进行了监听:转载 2013-11-19 16:16:50 · 1302 阅读 · 0 评论 -
Android4.2.2 Gallery2源码分析(11)——Gallery的层次结构图
总结前文的内容,画出Gallery的基本架构层次图如下:这里我省略了ActionBar等内容,只说主要界面。Activity主界面对应于GLRootView(继承自GLSurfaceView)。由于Gallery的Activity使用了ActivityState这一类来保存不同的页面对象,在Activity中根据需求加载不同的ActivityState对象。ActivityState中转载 2013-11-19 16:20:31 · 1372 阅读 · 3 评论 -
Android4.2.2 Gallery2源码分析(4)——GLCanvas.java
首先申明,找到这个类是在GLRootView.java中发现的线索。这是一个接口,源码中对该接口作了详细的说明:[java] view plaincopyprint?// // GLCanvas gives a convenient interface to draw using OpenGL. // // When a rectangle is sp转载 2013-11-19 14:41:03 · 1098 阅读 · 0 评论 -
Android 滑动效果基础篇(三)—— Gallery仿图像集浏览
Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好。本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果。效果图如下:1、基本原理在 Activity 中实现 OnGestureListener 的接口 onFling() 手势事件,通过自定义的 View转载 2013-11-20 14:08:28 · 812 阅读 · 0 评论