随笔分类 -  Android 高级效果(绘画,动画,3D,手势,viewFlipper...)

snake与LunarLander源代码分析
摘要:这个一个每个人都喜欢的简单的小游戏Snake是游戏的实现类,通过控制小蛇在花园中游走寻找苹果,注意,每吃掉一个苹果,小蛇身体不但会变的更长,还会移动的更敏捷,一旦撞上四周的墙或是碰到自己就会结束这次游戏。代码结构分析:Snake : 主游戏窗口SnakeView : 游戏视图类,是实现游戏的主体类TileView : 一个处理图片或其它Coordinate :这是一个包括两个参数,用于记录X轴和Y轴简单类,其中包括一个比较函数.RefshHandler :用于更新视图Snake 这个类是游戏的主游戏窗口,是框架容器,游戏的开始:oncreate此外的亮点是:setContentView(R.. 阅读全文

posted @ 2013-05-28 12:34 明明的天天 阅读(975) 评论(0) 推荐(0)

Android应用开发中半透明效果实现方案
摘要:手机屏幕太小,经常会用到半透明的效果以增加可视范围,给大家分享以下半透明实现方式!下面是自定义Activity半透明的效果例子:res/values/styles.xml<resources> <style name="Transparent "> <item name="android:windowBackground">@color/transparent_background</item> <item name="android:windowNoTitle">true& 阅读全文

posted @ 2012-08-29 17:42 明明的天天 阅读(2763) 评论(0) 推荐(0)

Gallery 3D+倒影 滑动切换图片示例
摘要:Gallery 3D+倒影 滑动切换图片示例效果图如下:贴上代码:1.扩展Gallery:public class GalleryFlow extends Gallery { private Camera mCamera = new Camera();//相机类 private int mMaxRotationAngle = 60;//最大转动角度 private int mMaxZoom = -300;////最大缩放值 private int mCoveflowCenter;//半径值 public GalleryFlow(Context context) { super(context) 阅读全文

posted @ 2012-08-22 14:49 明明的天天 阅读(2757) 评论(6) 推荐(1)

android 绘图的基本知识
摘要:1。定义颜色的几种格式:A color value specifies an RGB value with an alpha channel, which can be used in various places such as specifying a solid color for a Drawable or the color to use for text. It always begins with a # character and then is followed by the alpha-red-green-blue information in one of the fol 阅读全文

posted @ 2012-04-28 09:56 明明的天天 阅读(1152) 评论(0) 推荐(0)

动画的硬件加速
摘要:好像是3D的都能加速, 2D的部分能加速. 也不知道怎么加速.以后要总结总结.哪些能加速, 哪些不能加速.android图形系统详解六:View layerView layers 在所有版本的Android中,views都有画到离屏缓冲的能力,这包括使用view的绘制cache,或使用Canvas.saveLayer().离屏缓冲,或者说层,有很多用处.你可以使用它们来为复杂的view动画或使用组合效果时提高性能.例如,你可以使用Canvas.saveLayer()实现淡出效果,这个方法会临时的把一个view画到一个layer中然后使用一个透明系数把它组合回屏幕上. 从Android3.0.. 阅读全文

posted @ 2012-04-27 16:11 明明的天天 阅读(1904) 评论(0) 推荐(0)

android View全面详解2
摘要:Nested ClassesclassView.AccessibilityDelegateThis class represents a delegate that can be registered in aViewto enhance accessibility support via composition rather via inheritance.classView.BaseSavedStateBase class for derived classes that want to save and restore their own state inonSaveInstanceSt 阅读全文

posted @ 2012-04-27 14:44 明明的天天 阅读(8729) 评论(0) 推荐(0)

android View全面详解
摘要:全面的详解, 必须API文档的介绍, 如下:Class OverviewThis class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for drawing and event handling. View is the base class forwidgets, which are used to create interactive UI components 阅读全文

posted @ 2012-04-27 11:37 明明的天天 阅读(1400) 评论(0) 推荐(0)

动画类的全部方法..
摘要:PublicMethodsvoidcancel()取消动画Canceltheanimation.longcomputeDurationHint()Computeahintathowlongtheentireanimationmaylast,inmilliseconds.intgetBackgroundColor()Returnsthebackgroundcolorbehindtheanimation.booleangetDetachWallpaper()ReturnvalueofsetDetachWallpaper(boolean).longgetDuration()得到时间Howlongth 阅读全文

posted @ 2012-04-26 18:10 明明的天天 阅读(1214) 评论(0) 推荐(0)

android 自定义动画5 小知识点集锦
摘要:1. 几个动画并发的效果可以用<set>,要是按顺序发生的话可以用handler.postDelay(Runnable runnable,minisecond);2. 动画加速器简介:(直译名称)android.R.animConstantsintaccelerate_decelerate_interpolator加速-减速intaccelerate_interpolatorAcceleration curve matching Flash's quadratic ease out function.加速intanticipate_interpolator反向intanti 阅读全文

posted @ 2012-04-26 14:24 明明的天天 阅读(677) 评论(1) 推荐(0)

android 自定义动画4 RotateAnimation源码分析
摘要:源码如下:/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * U 阅读全文

posted @ 2012-04-26 11:50 明明的天天 阅读(2109) 评论(0) 推荐(0)

view, surfaceView, invalidate, postInvalidate, 刷新屏幕
摘要:1.viewview在api中的结构java.lang.Objectandroid.view.View直接子类:AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView, TextVie, ViewGroup, ViewStub间接子类:AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>, AppWidgetHostView, AutoCompleteTextView, Button, CheckBo 阅读全文

posted @ 2012-04-25 16:53 明明的天天 阅读(3974) 评论(2) 推荐(1)

SurfaceView和View最本质的区别
摘要:SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中thread处理,一般就需要有一个event queue的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。 阅读全文

posted @ 2012-04-25 16:35 明明的天天 阅读(641) 评论(0) 推荐(0)

Android 绘图 阴影制作(Shadow)
摘要:阴影制作:包括各种形状(矩形,圆形等等),以及文字等等都能设置阴影。阴影制作是什么原理呢?其实很简单,你需要设置阴影的东西被看作一个主层。然后在主层下面画一个阴影层。阴影制作涉及到一个重要函数:public void setShadowLayer(float radius, float dx, float dy, int color)radius:阴影半径dx:X轴方向的偏移量dy:Y轴方向的偏移量color:阴影颜色注意:如果半径被设置为0,意思就是去掉阴影。具体实现:1234567891011121314151617181920212223242526272829303132333435. 阅读全文

posted @ 2012-04-25 14:35 明明的天天 阅读(7079) 评论(0) 推荐(0)

Canvas的save和restore
摘要:在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?❑save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。❑restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多 阅读全文

posted @ 2012-04-25 11:42 明明的天天 阅读(562) 评论(0) 推荐(0)

android 自定义动画3_android.graphics.Camera解读
摘要:android.graphics.Camera实现图像的旋转、缩放,配合Matrix实现图像的倾斜 bysodinoandroid.graphics.Camera可以对图像执行一些比较复杂的操作,诸如旋转与绽放,与Matrix可实现图像的倾斜。个人总结Camera与Matrix的一些区别如下:Camera的rotate()相关方法是指定某一维度上旋转指定的角度。Matrix的rotate()相关方法实现的效果是顺时针旋转指定的角度;与Camera指定Z轴旋转效果相同,但方向相反。Camera的translate()方法根据某一维度上视点的位移实现图像的缩放,与Matrix的scale()相关方 阅读全文

posted @ 2012-04-25 11:17 明明的天天 阅读(3373) 评论(0) 推荐(0)

android 自定义动画2
摘要:在代码中继承android.view.animation.Animation类来实现自定义效果。通过重写Animation的applyTransformation(float interpolatedTime, Transformation t)函数来实现自定义动画效果。 在绘制动画的过程中会反复的调用applyTransformation函数,每次调用参数interpolatedTime值都会变化,该参数从0渐变为1,当该参数为1时表明动画结束。通过参数Transformation来获取变换的矩阵(matrix),通过改变矩阵就可以实现各种复杂的效果。自定义图片旋转效果动画代码。classV 阅读全文

posted @ 2012-04-25 09:32 明明的天天 阅读(6112) 评论(1) 推荐(0)

android 自定义动画1
摘要:android 里的2d动画有tween 和frame, 像镜面反转这种动画它内部没有提供支持, 上网查了一下.有人写了这个效果, 但是写得怎一个乱字了得, 又查了一下api demo里就有, 你们还弄什么乱七八糟的啊.http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Rotate3dAnimation.html如下:Rotate3dAnimation.javaThe file containing the source code shown below 阅读全文

posted @ 2012-04-25 08:48 明明的天天 阅读(1174) 评论(0) 推荐(0)

android动画研究
摘要:来源:http://www.eoeandroid.com/thread-653-1-1.html动画类型Android的animation由四种类型组成XML中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效果ScaleAnimation渐变尺寸伸缩动画效果TranslateAnimation画面转换位置移动动画效果RotateAnimation画面转移旋转动画效果Android动画模式Animation主要有两种动画模式:一种是tweened an 阅读全文

posted @ 2012-04-24 11:20 明明的天天 阅读(600) 评论(0) 推荐(0)

android手势操作滑动效果触摸屏事件处理
摘要:我们先来明确一些概念,首先,Android的事件处理机制是基于Listener(监听器)来实现的,比我们今天所说的触摸屏相关的事件,就是通 过onTouchListener。其次,所有View的子类都可以通过setOnTouchListener()、 setOnKeyListener()等方法来添加对某一类事件的监听器(注册监听)。第三,Listener一般会以Interface(接口)的方式来提供,其中 包含一个或多个abstract(抽象)方法,我们需要实现这些方法来完成onTouch()、onKey()等等的操作。这样,当我们给某个view设 置了事件Listener,并实现了其中的抽象 阅读全文

posted @ 2012-04-14 18:26 明明的天天 阅读(9564) 评论(0) 推荐(2)

ViewFlipper的使用
摘要:屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几个和动画相关的函数:l setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参 阅读全文

posted @ 2012-04-14 18:12 明明的天天 阅读(725) 评论(0) 推荐(0)

导航