- 浏览: 5826794 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
已不再推荐补间动画,请使用属性动画;
http://blog.csdn.net/guolin_blog/article/details/43536355
http://blog.csdn.net/guolin_blog/article/details/43816093
onCreate()中:
点击Imageview启动动画:
添加动画监听,在AnimationEnd的时候切换动画:
布局,让ImageView一开始的时候在屏幕右边:
本实例只是实现连续动画的一种简单办法,针对本例子应该还有更简单的方法.
///////////////////////////////////////////////////////////////////
//下面是anroid Api demo自带的一个shake(摇头)效果
///////////////////////////////////////////////////////////////////
anim/shake.xml
anim/cycle_7.xml
Android混合型动画AnimationSet
附:android中所有的interpolator
android平台提供了如下的interpolater
AccelerateDecelerateInterpolator
AccelerateInterpolator
CycleInterpolator
DecelerateInterpolator
LinearInterpolator
AnticipateInterpolator
AnticipateOvershootInterpolator
BounceInterpolator
OvershootInterpolator
这些interpolater实现的是
android.view.animation.Interpolator接口
该接口只有一个方法
getInterpolation(float num)
也就是不同的interpolater计算出的值不一样,比如:
public float getInterpolation(float input)
{
if (mFactor == 1.0f)
{
return (float)(input * input);
}
else
{
return (float)Math.pow(input, 2 * mFactor);
}
}
当输入的值为1时候,那么返回值是平方,否则返回立方的值。
其实interpolator是按照这种方式计算的
This interpolator’s goal is to provide a multiplication factor given a time interval
based on a hyperbolic curve。
基于双曲线计算时间的间隔,进行相关的动画处理。
比如常用的accelerator_interpolator其xml定义的结构为:
<accelerator xmlns:android="http://schemas.android.com/apk/res/android"
factor="1" /> 其乘数为1;基于此进行计算。
在大家学习的过程中建议大家多看英文的东西,这样会事半功倍的。
http://blog.csdn.net/guolin_blog/article/details/43536355
http://blog.csdn.net/guolin_blog/article/details/43816093
onCreate()中:
iv=(ImageView)this.findViewById(R.id.iv); iv.setTag("toRight"); iv.setOnClickListener(listener); ani_0 = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); ani_1= new TranslateAnimation( Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); ani_0.setInterpolator(new AccelerateDecelerateInterpolator()); ani_0.setDuration(1000); ani_0.setFillEnabled(true); ani_0.setFillAfter(true); ani_0.setAnimationListener(animationListener); ani_1.setInterpolator(new AccelerateDecelerateInterpolator()); ani_1.setDuration(1000); ani_1.setFillEnabled(true); ani_1.setFillAfter(true); ani_1.setAnimationListener(animationListener);
点击Imageview启动动画:
OnClickListener listener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.iv: iv.startAnimation(ani_0); break; } }
添加动画监听,在AnimationEnd的时候切换动画:
final AnimationListener animationListener = new AnimationListener() { @Override public void onAnimationEnd(Animation animation) { if (animation == ani_0) { iv.startAnimation(ani_1); } if (animation == ani_1) { iv.startAnimation(ani_0); } } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } };
布局,让ImageView一开始的时候在屏幕右边:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/search2" android:scaleType="fitCenter" android:layout_gravity="right" /> </LinearLayout>
本实例只是实现连续动画的一种简单办法,针对本例子应该还有更简单的方法.
///////////////////////////////////////////////////////////////////
//下面是anroid Api demo自带的一个shake(摇头)效果
///////////////////////////////////////////////////////////////////
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class Animation1 extends Activity implements View.OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.animation_1); View loginButton = findViewById(R.id.login); loginButton.setOnClickListener(this); } public void onClick(View v) { Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); findViewById(R.id.pw).startAnimation(shake); } }
anim/shake.xml
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="10" android:duration="1000" android:interpolator="@anim/cycle_7" />
anim/cycle_7.xml
<?xml version="1.0" encoding="utf-8"?> <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
Android混合型动画AnimationSet
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 要使用findViewById, 一定要使用layout / *.xml 做为使用者介面 setContentView( R.layout.main ); // 取得UI 介面中的View 物件 // 取得View 物件后,再透过转换成实际的物件 ImageView ivPic = (ImageView)this.findViewById(R.id.widget10); //底图 ImageView iv = (ImageView)this.findViewById(R.id.widget28); // 设定ImageView 的图片来源 ivPic.setImageResource( R.drawable.a2 ); iv.setImageResource( R.drawable.icon ); // 透明度动画设定(startAlpha, endAlpha) Animation am1 = new AlphaAnimation ( 1, 0 ); // 动画开始到结束的执行时间(1000 = 1 秒) am1. setDuration ( 2000 ); // 动画重复次数(-1 表示一直重复) am1. setRepeatCount ( -1 ); // 旋转动画设定(startAngle, endAngle, rotateX, rotateY) Animation am2 = new RotateAnimation ( 0, 360, 30, 30 ); // 动画开始到结束的执行时间(1000 = 1 秒) am2. setDuration ( 2000 ); // 动画重复次数(-1 表示一直重复) am2. setRepeatCount ( -1 ); // 动画集合 AnimationSet am = new AnimationSet ( false ); am. addAnimation ( am1 ); am. addAnimation ( am2 ); // 图片配置动画 iv. setAnimation (am); // 动画开始 am. startNow (); }
附:android中所有的interpolator
android平台提供了如下的interpolater
AccelerateDecelerateInterpolator
AccelerateInterpolator
CycleInterpolator
DecelerateInterpolator
LinearInterpolator
AnticipateInterpolator
AnticipateOvershootInterpolator
BounceInterpolator
OvershootInterpolator
这些interpolater实现的是
android.view.animation.Interpolator接口
该接口只有一个方法
getInterpolation(float num)
也就是不同的interpolater计算出的值不一样,比如:
public float getInterpolation(float input)
{
if (mFactor == 1.0f)
{
return (float)(input * input);
}
else
{
return (float)Math.pow(input, 2 * mFactor);
}
}
当输入的值为1时候,那么返回值是平方,否则返回立方的值。
其实interpolator是按照这种方式计算的
This interpolator’s goal is to provide a multiplication factor given a time interval
based on a hyperbolic curve。
基于双曲线计算时间的间隔,进行相关的动画处理。
比如常用的accelerator_interpolator其xml定义的结构为:
<accelerator xmlns:android="http://schemas.android.com/apk/res/android"
factor="1" /> 其乘数为1;基于此进行计算。
在大家学习的过程中建议大家多看英文的东西,这样会事半功倍的。
发表评论
-
ViewPager引导页根据滑动渐变背景色
2017-03-31 09:38 28751、主要依赖: compile'com.android.su ... -
Android 新推出基于物理的动画库SpringAnimation,完全诠释什么叫做弹簧效果
2017-03-30 10:38 2642Android 最近推出一个新的基于物理学的动画支持库,命名为 ... -
一个比较强大的提供各种形状的ImageView
2016-12-26 09:54 2991github上比较老的项目了,但是还是比较好用的。 各种形状总 ... -
PhotoView点击放大图片效果
2016-12-21 10:13 6103使用的PhotoView是这个版本的,比较小巧,很好用,比gi ... -
仿微信页面切换图标颜色渐变效果
2015-11-23 14:54 4480主要是提供一种思路,一般来书,类似效果无非就是在Canvas, ... -
把任意Drawable转换成基于progress填充的drawable
2015-11-11 16:29 2817把任意Drawable转换成基于progress填充的draw ... -
一个用来设置警示View 的呼吸式背景颜色的工具类BreathingViewHelper
2015-10-10 14:03 3092一个简单的小工具类,用来设置警示 View 的呼吸式背景颜色 ... -
单手操作图片控件 镜像、置顶、缩放、移动:StickerView
2015-10-08 11:21 3232单手操作图片控件 镜像、置顶、缩放、移动 impo ... -
图片浏览zoom效果
2015-10-08 11:05 1848不仅实现了Lollipop中打开新的activity 的zoo ... -
Android App状态栏变色:ColorfulStatusBar
2015-09-24 12:38 9977适用于版本大于等于19以上。 import android ... -
PathView实现炫酷SVG动画
2015-08-25 09:23 4476解析SVG,需要将一个androidsvg.jar包含进lib ... -
LinearLayout增加divider分割线
2015-08-13 14:58 11157在android3.0及后面的版本在LinearLayout里 ... -
Android换肤白天/夜间模式的框架
2015-07-29 15:36 2974Android换肤/夜间模式的Android框架,配合them ... -
使用ActivityOptions做Activity切换动画
2015-04-10 11:02 6640不知道大家有没有注意到startActivity(Intent ... -
一个不错的ArcMenu
2015-01-23 10:34 3948ArcMenu这种效果现在很多人都实现了 而且代码质量也 ... -
使用ScheduledExecutorService延时关闭一个全屏的对话框
2014-12-29 16:38 4421自定义style,设置全屏属性 <resources ... -
让View只显示下边框
2014-10-23 17:13 4010下面的代码是实现一个带边框的xml,很常见 <?xm ... -
让一张图片从模糊慢慢变清晰动画过程
2014-01-27 16:38 9298import java.io.IOExcepti ... -
ListView,GridView之LayoutAnimation特殊动画的实现
2013-05-24 11:23 34418LayoutAnimation干嘛用的?不知道的话网上搜一下。 ... -
食神摇摇中图片的晃动效果
2013-04-27 11:45 5501可以是这样子实现滴: btn_shake=(Image ...
相关推荐
让两个imageView上的图片实现动画互换并且让互换后的Imageview位置也互换
在拖动过程中,需要避免一个ImageView完全覆盖另一个,可以设置一个透明度阈值,当ImageView重叠到一定程度时,逐渐降低其透明度,这样用户仍能看清下方的ImageView。 7. **边界检测**: 实现限制ImageView在特定...
在许多应用场景中,我们可能需要实现一个功能,让ImageView能够在水平方向上随着用户的指尖来回移动,从而提供更丰富的交互体验。这个功能通常涉及到触摸事件处理和动画效果的实现。 首先,我们需要了解Android中的...
本文将深入探讨如何通过自定义ImageView来实现旋转动画,让图片在XYZ轴上动态展示,为用户带来更加生动的视觉效果。 首先,我们需要创建一个新的类,继承自Android的内置ImageView类。这个新类将作为我们自定义的...
此外,可能还需要用到布局参数(LayoutParams)来调整ImageView在屏幕中的位置,确保其可以正确地从屏幕边缘退出。 在图片加载方面,通常我们会使用像Picasso、Glide或者 Glide4 这样的库,它们能够方便地加载网络...
在“Android ImageView 拖拽实例”中,我们主要关注的是如何赋予ImageView手势操作的能力,让用户能够通过触摸屏幕来移动ImageView。这个实例的实现涉及到以下几个关键知识点: 1. **监听触摸事件**:首先,我们...
如果需要确定一个ImageView是否在另一个ImageView的左边、右边、上方或下方,可以比较它们的边界坐标: ```java boolean isLeftOf = imageView1.getRight() < imageView2.getLeft(); boolean isRightOf = imageView...
在Android开发中,将网络上的图片加载到ImageView控件中是一项常见的需求。本文将详细介绍如何通过URL获取网络图片并将其显示在ImageView上。我们将使用一个简单的示例来演示这一过程,该示例是从百度官网获取其logo...
在某些场景下,我们可能需要实现一个特殊效果,比如让ImageView能够左右翻转,来增加用户交互的趣味性或者实现特定的动画效果。本文将深入探讨如何使用一个名为"ImageRotate"的框架,来轻松地在项目中实现这个功能。...
- ** TranslationX与TranslationY**:使用`setTranslationX()`和`setTranslationY()`方法,可以改变ImageView在屏幕上的位置,从而实现左右移动的效果。 - ** 动画效果**:通过`ObjectAnimator`或`ValueAnimator`...
要在ImageView上添加另一张图片,我们可以创建一个新的ImageView实例并将其设置为父布局的子视图。例如,如果我们的主ImageView位于一个LinearLayout中,可以这样做: ```java ImageView mainImageView = ...
在Android开发中,UI设计是不可或缺的一部分,而ImageView作为一个常用组件,经常被用来显示图片。在许多应用场景中,我们可能需要让ImageView显示为圆形或者带有特定圆角的效果,以达到更好的视觉体验。本文将深入...
在适配器中,我们需要定义一个ViewHolder类来缓存视图,提高性能。ViewHolder中包含ImageView和EditText实例,这样可以避免每次绑定数据时频繁查找视图。 ```java public class MyAdapter extends BaseAdapter { ...
本文将深入探讨如何自定义一个ImageView来实现图片的网络获取与适应性缩放,这对于我们处理图片展示,尤其是网络图片,有着非常实用的价值。 首先,我们要明白自定义ImageView的主要目标是解决图片在不同设备和屏幕...
在Android开发中,`ImageView` 是一个非常基础且重要的组件,用于显示图片资源。然而,系统默认的`ImageView`并不支持直接添加边框。在实际应用中,有时我们需要为图片添加各种样式的边框,以满足UI设计的需求。在...
在这个场景中,我们将深入探讨如何使用`ViewDragHelper`来实现一个特定的功能:当用户拖动`ImageView`时,如果移动距离超过屏幕的1/2,图像会返回到屏幕左侧;否则,它会被移动到右侧。同时,我们还将添加点击事件的...
对于方形`ImageView`,实现起来相对简单,只需要在`onDraw()`中调用`canvas.clipRect()`,设置一个与视图大小相同的矩形区域即可。 至于星形`ImageView`,情况会稍微复杂些。因为星形不是简单的几何形状,所以需要...
总的来说,TextImageView是Android开发中的一个强大工具,它通过在图片上绘制可展开的文本,丰富了UI设计的可能性,为开发者带来了新的创新思路。同时,作为开源项目,它鼓励社区参与,共同推动Android UI组件的进化...
2. **自定义ImageView**:为了添加手势缩放功能,我们需要创建一个自定义的`ImageView`子类。在这个子类中,我们需要重写`onTouchEvent`方法,将触摸事件传递给`ScaleGestureDetector`进行处理。 3. **...
在XML布局文件中,我们可以这样创建一个`ImageView`: ```xml <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/...