- 浏览: 534884 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
先看下效果:
[img]
[/img]
[img]
[/img]
[img]
[/img]
[img]
[/img]
工程结构图:
[img]
[/img]
主类:
alpha
list_layout_controller.xml
scale
translate_scale.xml
main.xml
配置文件:
[img]
[/img]
[img]
[/img]
[img]
[/img]
[img]
[/img]
工程结构图:
[img]
[/img]
主类:
package com.amaker.list; import android.app.Activity; import android.graphics.Camera; import android.graphics.Matrix; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnticipateInterpolator; import android.view.animation.AnticipateOvershootInterpolator; import android.view.animation.BounceInterpolator; import android.view.animation.CycleInterpolator; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; import android.view.animation.OvershootInterpolator; import android.view.animation.Transformation; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; /** * @Title: ListViewAnimationDemoActivity.java * @Package com.xiaoma.listviewanimation.demo * @Description: ListView控件动画学习测试 * @author MZH * * */ public class ListViewAnimationDemoActivity extends Activity implements OnClickListener { private ListView listview; private Button btn; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } /** * 初始化方法实现 */ private void init() { btn = (Button) findViewById(R.id.button); btn.setOnClickListener(this); String items[] = { "还记得", "那一年", "那一天", "有个人", "爱过我", "洗刷刷", "爱拉拉", "哇吼吼", "咔酷伊", "咔哇伊", "哦吼吼", "小马果"}; listview = (ListView) findViewById(R.id.listview); //适配器我就用最简单的,要用复杂的,大家可以自定义适配器 ArrayAdapter<String> adapter = new ArrayAdapter<String>( getApplicationContext(), android.R.layout.simple_list_item_1, items); listview.setAdapter(adapter); } /** * 布局内所有点击事件监听 */ public void onClick(View v) { // 因为只有一个按钮,小x就直接写个if简单的判断下了,多个老规矩用分支判断 if (v.getId() == R.id.button) { //开始播放ListView动画 startPlayAnimation(); } } /** * 开始播放ListView动画方法实现 */ private void startPlayAnimation() { // ListViewAnimationChange为矩阵控制类 listview.startAnimation(new ListViewAnimationChange()); } /** * @Title: ListViewAnimationChange.java * @Package com.xiaoma.listviewanimation.demo * @Description: ListView控件的矩阵内部控制类 * @author MZH * 在这个地方讲下,要自行控制屏幕矩阵的话必须实现现在两个方法 */ private class ListViewAnimationChange extends Animation { @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { // 将动画播放时间设置为5秒 setDuration(5000); // 设置缩放完成后,效果不消失 setFillAfter(true); // 设置线性插值器,这个地方new出来的对象跟在scale.xml中的插值器没什么区别,也可以用别的 /** * 顺带着讲下在2D动画中常用的插值器吧,小x先给自己及大伙提醒下:插值器,就是告诉Android,播放动画时 * 是从快到慢还是从慢到快,从左到右的旋转还是其它的方式的动画,刚开始很怕这个词,试了下效果,其实不太吓人... * 吼吼,类型如下面的八种,跟scale.xml或alpha.xml中使用的插值器一样的,只是写的形式不一样而已 * */ /** * 所有的插值器都实现Interpolator接口中的 getInterpolation(float input)方法,好奇的朋友 * Ctrl跟进下....只注意一点,插值器不能同时set多个,不然最前面的会被覆盖,即:无效果.. * new AccelerateDecelerateInterpolator(); * new AccelerateInterpolator(); * new CycleInterpolator(1.0f); * new DecelerateInterpolator(); * new AnticipateInterpolator(); * new AnticipateOvershootInterpolator(); * new BounceInterpolator(); * new OvershootInterpolator(); * new LinearInterpolator(); * 与以上几种插值器相对应的方法在xml文件中的使用方式大家可以自动ALT+/试下,换汤不换药 */ //下面是小x试的效果,好奇的朋友们可以打开效果试下,小x不一一解释 // setInterpolator(new LinearInterpolator()); // setInterpolator(new CycleInterpolator(1.0f) ); // setInterpolator(new AccelerateDecelerateInterpolator()); // setInterpolator(new DecelerateInterpolator()); /** * 这两个好玩就选了,这个效果类似于Android 4.0的那个左右摆动..效果可以自己打开注释试下.. * 要用自己效果的可以重新改下矩阵的控制 */ setInterpolator(new AnticipateOvershootInterpolator()); //setInterpolator(new OvershootInterpolator()); super.initialize(width, height, parentWidth, parentHeight); } /** * 这个重写是控制矩阵中关键的一步 * 介绍一个参数:interpolatedTime 安卓系统在模拟动画时会反复的调用这个方法 * 所以这个值是一直变化的,从0-1变化.... * 这个方法就是在某一个时间点上将动画添加到指定的控件上 */ @Override protected void applyTransformation(float interpolatedTime, Transformation t) { super.applyTransformation(interpolatedTime, t); /* * final Matrix matrix = t.getMatrix(); * matrix.setScale(interpolatedTime, interpolatedTime); * matrix.preTranslate(-50f, -50f); matrix.postTranslate(50f, 50f); */ // matrix.setRotate(45f); // matrix.setTranslate(40f,50f); /** * Camera小x犯的错:导相机包...大家注意下就可以了, * 我们应该导入graphics包 */ Camera camera = new Camera(); //取得屏幕矩阵对象 final Matrix matrix = t.getMatrix(); camera.save(); /** * 下面方法中的参数大家自己CTRL跟下,小x不一一解说, * 不跟进的自己改改看下效果就知道是什么意思了.. */ camera.translate(0.0f, 0.0f, (1300 - 1300.0f * interpolatedTime)); camera.rotateY(360 * interpolatedTime); camera.getMatrix(matrix); //设置矩阵播放动画前的位置.原点为:0,0 matrix.preTranslate(-50f, -50f); //设置矩阵播放完动画后的位置 matrix.postTranslate(50f, 50f); camera.restore(); // 如果用了以下的效果,则上面Camera做的矩阵变换将被覆盖 // matrix.setScale(interpolatedTime, interpolatedTime); } } }
alpha
<?xml version="1.0" encoding="utf-8"?> <!-- alpha 这个地方说几句,android:interpolator 大家自行换换别的试下 --> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/bounce_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="1000" />
list_layout_controller.xml
<?xml version="1.0" encoding="utf-8"?> <!-- 动画控制器,这个文件只是把要添加的动画与我们的动画资源关联起来 下面这个属性来控制控制动画的方向,如:比底部到顶部,或别的... 我们在主布局文件中控件的属性里面使用这个地方的动画控制器 android:animationOrder="reverse" --> <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="30%" android:animationOrder="reverse" android:animation="@anim/scale" />
scale
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <scale android:fromXScale="1" android:toXScale="1" android:fromYScale="0.1" android:toYScale="1.0" android:duration="500" android:pivotX="50%" android:pivotY="50%" /> </set>
translate_scale.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" /> <translate android:fromYDelta="-100%" android:toYDelta="0%" /> </set>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="播放ListView动画" /> <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layoutAnimation="@anim/list_layout_controller" android:persistentDrawingCache="animation|scrolling" /> </LinearLayout>
配置文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.amaker.list" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:name=".ListViewAnimationDemoActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
- ListViewAnimationTest.rar (49.8 KB)
- 下载次数: 19
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2010android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2046Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1553SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 797Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 739转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1016===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1695(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1434在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 983package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1254工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1009SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1227Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 798一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1172运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 902package com.zzl.tools; impor ...
相关推荐
这个压缩包文件“安卓动画效果相关-这是一个天平效果的自定义控件实现了天平的摆动动画.rar”显然是一个专门针对Android平台的自定义控件项目,其核心在于实现一个模拟天平摆动的动画效果。下面将详细探讨相关的知识...
本文将详细介绍如何在微信小程序中实现图片左右摆动的动画效果。需要注意的是,小程序的动画实现与传统的CSS3动画有所不同,微信小程序主要通过JavaScript来控制动画,而非传统的CSS。 首先,需要了解微信小程序的...
在Android开发中,图片旋转和摆动动效是常见的用户界面增强技巧,可以提升应用的交互体验。本文将深入探讨如何使用`android.graphics.Matrix`类和Java代码在Android平台上实现这些效果。 首先,`android.graphics....
在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的视觉效果。"自定义View_灵动的锦鲤"这个项目可能是一个示例,展示了如何利用Android SDK来...
在Delphi编程环境中,我们可以利用其强大的图形用户界面(GUI)设计能力,结合时钟组件,来实现一些动态效果,如文字的上下摆动和滚动。这个主题涉及到多个知识点,包括Delphi的基础语法、组件使用、事件处理以及...
风的效果可能通过改变其他元素(如树叶、草丛等)的摆动程度来间接体现。这同样可以通过自定义View,根据风力的强弱改变元素的角度和幅度,再配合动画框架进行平滑的动画过渡。 至于雪花飘落的动画,可以使用粒子...
在这个案例中,我们将探讨如何实现一个名为PendulumView的自定义View,它展示了一个钟摆效果的进度条。这个View适用于为加载界面提供一种视觉上的反馈,其动画效果使得加载过程更有趣。 首先,我们从自定义属性开始...
6. **组合动画**:为了模拟风车的真实效果,可能需要组合多个动画,比如同时旋转不同叶片,或者在特定条件下添加其他附加动画,如叶片的摆动。 7. **测试与调整**:最后,进行充分的设备适配和性能测试,根据实际...
摆动动画可能涉及到角度变化、位移以及速度控制等参数,以达到逼真的视觉效果。 自定义控件通常需要继承自Android的基础View或者 ViewGroup,并覆盖其onDraw()方法来绘制自定义的UI。对于天平效果,开发者可能需要...
风的效果可能通过改变其他元素(如树叶、物体等)的摆动状态来表现。可以为这些元素设置旋转或位移动画,并根据风力大小调整动画的强度和速度。 雪的动画则需要创建大量的雪花对象,每个都有不同的飘落路径。可以...
风车效果可能使用了这些API之一,通过改变视图的旋转角度、透明度或大小等属性,来模拟风车的转动和摆动。 2. **自定义View**:为了创建独特的视觉效果,如风车转动,开发者可能创建了一个自定义的`View`类。在这个...
这种效果通常用于模拟物体的自然运动,比如风中的树叶或者钟表指针的摆动,增加应用的动态感。 首先,我们需要在布局文件`activity_main.xml`中设置基础结构。在这个例子中,我们使用了一个LinearLayout作为容器,...
对于摆锤动画,我们可能需要控制摆锤的角度随时间线性或非线性变化,从而实现摆动效果。 再者,自定义`View`是实现复杂动画的另一种方法。在`onDraw()`方法中,我们可以根据动画状态改变绘制的内容,如改变摆锤的...
在这个项目中,可能是通过改变锦鲤的位置、角度和速度来实现游动和摆动效果。 4. **触摸事件处理**:当用户点击屏幕时,项目会响应并产生水波纹扩散效果。这涉及到对`MotionEvent`的监听和处理,例如在`...
这可以通过添加额外的动画效果来实现,例如,页面在接近翻转结束时减速,或者当用户松手后页面会自然摆动几下。 6. **性能优化**:由于翻页动画涉及到大量的视图操作和计算,因此性能优化至关重要。可以通过使用...
首先,Android提供了多种动画机制,包括属性动画(Property Animation)、视图动画(View Animation)以及Transition API。对于personwalk动画,我们可能会使用属性动画,因为它提供了更多的控制和灵活性,可以改变...
在本例中,我们将改变图片视图`UIImageView`的`center`属性来实现摆动效果。中心点是我们指定的固定点,图片将围绕这个点摆动。为了使图片左右摆动,我们需要在每次动画执行时改变图片的X坐标,而保持Y坐标不变。 ...
3. **旋转(Rotation)**:为了实现摆动效果,我们需要让视图围绕一个轴线旋转。这可以通过`ObjectAnimator.ofFloat(view, "rotation", startAngle, endAngle)`来实现,其中startAngle和endAngle定义了旋转的起始和...