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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端开发经验总结_前端开发实训总结报告

    前端开发经验总结_前端开发实训总结报告一、前端开发经验总结开发前与产品经理/UI对接需要注意:配色,字体,弹框/消息提示,响应式操作,设备屏幕比例,间距,是否多个主题,icon或者svg图标给出方式,图片大小,表格表单等等组件,页面注释便于理解和记录。最好有设计规范先出来再开始设计。开发前与后端对接需要注意:是否具有需求文档,返回的状态处理,容错处理,接口提交类型(get、post等)能否统一设置,参数类型设置,能否合理安排工期,能否又便捷的接口呈现方式(借用工具还是文档标注)。选择框架要慎重。搭框架包括:状态管理,网络管理,样式处理

    2022年8月30日
  • centos7搭建hadoop集群之rsync和xsync[通俗易懂]

    centos7搭建hadoop集群之rsync和xsync[通俗易懂]文章记录于各个服务器(或者虚拟机等)已经配置了ssh免密登录,可执行下面操作,未配置ssh免密登录,可参考:https://blog.csdn.net/yhblog/article/details/84029535此文章是基于centos7minimal版本的,纯净系统,所以还需要安装rsync工具(确保所有节点都必须安装rsync)否则报错:安装成功:启动rsync服务sys…

    2022年6月2日
  • 在Win7环境下安装启动Linux

    在Win7环境下安装启动Linux

    2021年11月14日
  • 基于arduino的lcd1602显示_LCD1602接口类型

    基于arduino的lcd1602显示_LCD1602接口类型Arduino小实验LCD1602A_I2C液晶显示魔法传送门Arduino小实验LCD1602A_I2C液晶显示准备元件LCD1602A原理图接线部分Arduino代码常见bug汇总及解决方法准备元件准备元件:1.Arduino主板(UNO)//Arduino主板(Mega)崭新出厂2.LCD1602A液晶显示屏3.LCD1602A的驱动—PCF8574驱动板LCD1602A原理图接线部分ArduinoMega:ArduinoUNO实物图Arduino代码常见bug汇总

    2022年9月22日
  • 图像语义分割简介_图像语义分割算法

    图像语义分割简介_图像语义分割算法今天,我们就来谈谈自动驾驶系统中的一项重要核心技术——图像语义分割(Semanticimagesegmentation)。图像语义分割作为计算机视觉(Computervision)中图像理解(Imageunderstanding)的重要一环,不仅在工业界的需求日益凸显,同时语义分割也是当下学术界的研究热点之一。什么是图像语义分割?图像语义分割可以说是

    2022年8月21日
  • Centos7安装Postgresql 13 详细步骤(远程连接)

    Centos7安装Postgresql 13 详细步骤(远程连接)

    2021年6月4日

发表回复

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

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