Android图形动画 使用ScaleAnimation

Android图形动画 使用ScaleAnimation使用ScaleAnimation实现了一个类似于翻转的动画效果。感觉ScaleAnimation算是一个比较好用的动画类了,看了一下API感觉方法和构造方法也都很简单。就不再赘述太多直接上代码吧– 第一步:准备两张照片,放置在res/drawble下。首先在layout中写好布局文件,这里要用framelayout布局,让两张图片一张覆盖在另一张上。相信聪明的你…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用ScaleAnimation实现了一个类似于翻转的动画效果。

感觉ScaleAnimation算是一个比较好用的动画类了,看了一下API感觉方法和构造方法也都很简单。

就不再赘述太多直接上代码吧- –

 

第一步:

准备两张照片,放置在res/drawble下。

首先在layout中写好布局文件,这里要用framelayout布局,让两张图片一张覆盖在另一张上。

相信聪明的你看到这里已经秒懂等下的图片处理方式了。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.dfanzhuan.MainActivity" >

    <ImageView
        android:id="@+id/ivA"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/image_a" />

    <ImageView
        android:id="@+id/ivB"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/image_b" />

</FrameLayout>

 第二部:

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private ImageView imgA;
	private ImageView imgB;
	
	private ScaleAnimation sato0 = new ScaleAnimation(1, 0, 1, 1, 
			Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);           
	private ScaleAnimation sato1 = new ScaleAnimation(0, 1, 1, 1, 
			Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);           
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
		findViewById(R.id.root).setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if (imgA.getVisibility() == View.VISIBLE) {
					imgA.startAnimation(sato0);
				}else {
					imgB.startAnimation(sato0);
				}
			}
		});
	}
	
	private void showImageA() {
		imgA.setVisibility(View.VISIBLE);
		imgB.setVisibility(View.INVISIBLE);
	}
	
	private void showImageB() {
		imgA.setVisibility(View.INVISIBLE);
		imgB.setVisibility(View.VISIBLE);
	}
	
	private void initView() {
		//指定执行时间
		imgA = (ImageView) findViewById(R.id.ivA);
		imgB = (ImageView) findViewById(R.id.ivB);
		showImageA();
		//动画执行时间
		sato0.setDuration(500);
		sato1.setDuration(500);
		
		sato0.setAnimationListener(new AnimationListener() {
			
			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onAnimationEnd(Animation animation) {
				if (imgA.getVisibility() == View.VISIBLE) {
					imgA.setAnimation(null);
					showImageB();
					imgB.startAnimation(sato1);
				} else {
					imgB.setAnimation(null);
					showImageA();
					imgA.startAnimation(sato1);
					
				}
			}
		});
	}

}

 个人感觉难点在于对时间和图片翻转情况的理解,不过写几次以后就just soso了~

下面是效果图,因为还不会做git。。。所以发四张好了:

Android图形动画 使用ScaleAnimation
 
Android图形动画 使用ScaleAnimation
 

Android图形动画 使用ScaleAnimation
 
Android图形动画 使用ScaleAnimation
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183892.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我写了一起 Makefile(一)

    我写了一起 Makefile(一)

    2021年12月17日
    55
  • iOS版本比较方法

    之前一直把版本号转换为floatValue,但是最近在项目中又出现了float的问题,主要是NSString表示为@"17.30",转换为floatValue值为17.2999

    2021年12月25日
    77
  • 如何制作ISO镜像文件

    如何制作ISO镜像文件在windows下,一般需要专用工具软件才能操作ISO文件。比如UltraISO、WinISO、WinImage、DaemonTools等。如果仅仅是想读取ISO文件中的内容,则可以用WinRAR

    2022年8月1日
    17
  • 从机械硬盘和固态硬盘的结构来看IO

    从机械硬盘和固态硬盘的结构来看IO“磁盘”这个词,对于程序员来说并不陌生,我们知道它是一种存储介质,主要用来存储数据的,可以说常用的中间件基本上都离不开它,比如我们常用的MySQL数据库、kafka消息引擎,甚至redis缓存都离不开磁盘。我们在优化某个业务逻辑的时候,经常需要用到缓存,尽量让热数据都从缓存里读取,因为我们知道磁盘是缓慢的,特别在高并发的场景下,我们要保证极少的请求走磁盘IO。不知道你有没有思考过以下问题: 机械硬盘为什么慢? 机械硬盘有多慢? kafka也是写磁盘的,它却挺快的,为什么?..

    2022年5月12日
    45
  • idea 2021 3.2 激活码【在线注册码/序列号/破解码】

    idea 2021 3.2 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    63
  • 【Java】idea @NotNull @Nullable 注解

    【Java】idea @NotNull @Nullable 注解这两个注解在idea里面可以帮助我们检测方法的返回值,方法参数以及局部变量是否为空,从而帮助我们减少一些NPE的发生。1.原始注解@NotNull@Nullable最开始只能使用idea提供的一个jetBrainsjavaannotation的jar包下的注解。maven坐标:https://mvnrepository.com/artifact/org.jetbrains…

    2022年5月4日
    281

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号