public class MainActivity extends Activity { private ImageView image; private Button alpha_btn, rotate_btn, scale_btn, translate_btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); image = (ImageView)findViewById(R.id.image); alpha_btn = (Button)findViewById(R.id.alpha); rotate_btn = (Button)findViewById(R.id.rotate); scale_btn = (Button)findViewById(R.id.scale); translate_btn = (Button)findViewById(R.id.translate); alpha_btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { //1.创建一个AnimationSet对象 AnimationSet animationSet = new AnimationSet(true); //2.创建一个AlphaAnimation对象,Alpha透明度渐变,全不透到全透的渐变 AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); //3.为AlphaAnimation设置相应的数据 alphaAnimation.setDuration(5000); //4.将AlphaAnimation添加到AnimationSet对象中 animationSet.addAnimation(alphaAnimation); //5.执行动画 image.startAnimation(animationSet); } }); rotate_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); //以image的左上角为旋转轴点 //RotateAnimation rotate = new RotateAnimation(0, 360); /*绝对像素,相对于view的左上角 RotateAnimation rotate = new RotateAnimation(0, 360, Animation.ABSOLUTE, 150, Animation.ABSOLUTE, 150); */ /*相对于view自身 RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); */ RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f); rotate.setDuration(5000); animationSet.addAnimation(rotate); image.startAnimation(rotate); } }); scale_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); ScaleAnimation scale = new ScaleAnimation( 0.1f, 1f, 0.1f, 1f, //x,y缩放比例 Animation.RELATIVE_TO_SELF, 0.5f,//缩放中心点 Animation.RELATIVE_TO_SELF, 0.5f); scale.setDuration(3000); animationSet.addAnimation(scale); image.startAnimation(animationSet); } }); translate_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AnimationSet animationSet = new AnimationSet(true); TranslateAnimation translate = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 1f,//起始移动的x Animation.RELATIVE_TO_SELF, 0f,//起始移动的y Animation.RELATIVE_TO_SELF, 0.5f,//移动终点x Animation.RELATIVE_TO_SELF, 0f);//移动终点y translate.setDuration(3000); animationSet.addAnimation(translate); image.startAnimation(animationSet); } }); } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/teas"/> <Button android:id="@+id/alpha" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0dp" android:text="Alpha"/> <Button android:id="@+id/rotate" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/alpha" android:layout_marginTop="20dp" android:text="rotate"/> <Button android:id="@+id/scale" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="scale"/> <Button android:id="@+id/translate" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@id/scale" android:layout_marginBottom="20dp" android:text="translate"/> </RelativeLayout>
相关推荐
这篇博客"Android之Animation<2>"可能详细探讨了Android动画系统的一些高级话题,包括自定义动画、帧动画以及属性动画等。由于没有提供具体的内容摘要,我将根据常见的Android动画知识点进行详细的解释。 首先,...
<groupId>com.daimajia.androidanimation</groupId> <artifactId>library</artifactId> <version>1.1.3</version> <type>apklib</type> </dependency> <dependency> <groupId>com.daimajia.easing</groupId> ...
AndroidInput <=> 安卓输入 AndroidJavaClass <=> 安卓Java类 AndroidJavaObject <=> 安卓Java对象 AndroidJavaProxy <=> 安卓Java代理 AndroidJNI <=> 安卓本地编程接口 AndroidJNIHelper <=> 安卓本地接口...
<groupId>com.daimajia.androidanimation</groupId> <artifactId>library</artifactId> <version>1.1.3</version> <type>apklib</type> </dependency> <dependency> <groupId>com.daimajia.easing</...
1. `Animation`:这是所有动画的基础类,定义了动画的基本行为,如持续时间、重复次数等。 2. `TranslateAnimation`:用于实现对象的平移动画。 3. `ScaleAnimation`:实现对象的缩放动画。 4. `RotateAnimation`:...
- **线**:使用`<line>`标签,指定`android:x1`、`android:y1`为起点,`android:x2`、`android:y2`为终点。 - **多边形**:使用`<polygon>`,通过`android:points`属性定义顶点坐标,例如`"0,0 100,0 50,100"`。 ...
在Android平台上,动画是提升用户体验的关键元素之一,尤其是在视图(View)操作中。"android_animation"这个主题主要聚焦于Android中的View动画,这包括了转换动画(Translation Animation)、缩放动画(Scale ...
每个`<item>`代表动画中的一个静态图像,需要指定`android:drawable`为对应的图片资源ID(如`@drawable/frame1`),以及`android:duration`为该帧显示的时间(以毫秒为单位)。 ```xml <item android:drawable="@...
`<shape>`是Android中最基本的图形定义方式之一,它可以用于创建复杂的背景效果。通常情况下,`<shape>`定义的XML文件会被放置在项目的`drawable`目录下,而不是`drawable-hdpi`等目录。`<shape>`支持定义多种类型的...
在Android中,我们可以使用`<alpha>`、`<scale>`、`<translate>`和`<rotate>`标签来定义动画。对于“圆形向外扩散”,我们可能需要用到`<scale>`标签来扩大圆形的大小,并结合`<alpha>`标签改变其透明度。 2. **XML...
在Android中,可以使用`<animation-list>`标签在XML资源文件中定义帧动画,并通过`AnimationDrawable`类进行控制。例如,一个简单的按钮点击效果可能就是帧动画的应用。 2. **补间动画(Tween Animation)**:补间...
`<set>`标签用于组合多个动画,而每个动画类型如`<alpha>`、`<scale>`等都有对应的属性来配置动画效果。 Frame-by-Frame Animation 适用于需要精确控制每一帧显示情况的动画,比如播放一系列连续的图像来形成动画...
本主题聚焦于Android自定义动画,特别是如何通过组合`<scale>`和`<translate>`基本动画来创建一个动态的雪花飘落效果。我们将深入探讨这两个动画类型以及如何将它们整合到一起。 首先,让我们了解`<scale>`动画。`...
<item android:drawable="@drawable/frame1" android:duration="100" /> <item android:drawable="@drawable/frame2" android:duration="100" /> <item android:drawable="@drawable/frame3" android:duration=...
<item android:drawable="@drawable/frame1" android:duration="100" /> <item android:drawable="@drawable/frame2" android:duration="100" /> <!-- 更多帧 --> </animation-list> ``` 然后在代码中加载并启动...
为了帮助开发者更好地理解Android中的各种XML属性及其用途,本文将详细介绍部分核心XML元素及其属性,包括但不限于`<animated-rotate>`、`<animation-list>`、`<bitmap>`等。 #### `<animated-rotate>`: 动态旋转...
这篇博客文章“Android小项目之--Animation四种动画的图片效果(附源码)”详细讲解了如何在Android平台上实现四种不同的动画效果,包括平移动画、旋转动画、缩放动画以及淡入淡出动画。通过这些动画,开发者可以...
<item android:drawable="@drawable/frame1" android:duration="100"/> <item android:drawable="@drawable/frame2" android:duration="100"/> <item android:drawable="@drawable/frame3" android:duration="100...
在XML中,可以通过`<animation-list>`标签定义一个帧动画,或者使用`<translate>`, `<scale>`, `<rotate>`, 和 `<alpha>`等标签创建平移、缩放、旋转和透明度变化的效果。同时,`AnimationUtils`和`...