`

Android动画处理缩放,平移,旋转

阅读更多

                              在安卓中,定义动画方案有很多种,首先我们由深入浅,之所以要由深入浅是因为提高大家的兴趣,再者是最近计算机图形老师要求的实验,要求使用VS的软件作画,语言要求c++,小编不仅很硬气的选择了java语言,还很霸道的选择了安卓来实现,看得助教一愣一愣的,硬是让我验过了,学有所用就是这样,在学习之前大家可以深入了解一下计算机图形的矩阵思想,这个在之后会将,大家也可以先去了解一下,我们这节课简单的使用已经封装好的简便方法实现上述功能,至于具体算法,之后会讲。

     建立三个Activity分别实现缩放,平移,旋转

这里为了显示清楚,小编采取了分页模式中的ActivityGroup,来使得页面分别显示三个Activity,感兴趣的可以在我博客里找有讲述,觉得实现麻烦的可以利用跳转功能,如果连跳转都觉得麻烦的建议使用方法直接按钮定义也可以。

首先布局文件定义,因为三个xml异曲同工,这里就只列出一个例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Translate"
        android:src="@drawable/jump" />

</LinearLayout>

 上述绑定了监听方法,实现不同功能需要你定义不同的监听方法,这里需要你自己定义

缩放的Activity代码

public class MyActivity extends Activity {
	private ImageView image=null;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.mylayout);
		image=(ImageView)super.findViewById(R.id.image1);
	}
	public void scale(View v){
		AnimationSet set=new AnimationSet(true);
		ScaleAnimation scale=new ScaleAnimation(
				1,0.0f,//X轴从满屏缩小到无
				1,0.0f,//Y轴从满屏缩小到无
				Animation.RELATIVE_TO_SELF,0.5f,//以自身0.5宽度为轴缩放
				Animation.RELATIVE_TO_SELF,0.5f);//以自身0.5宽度为轴缩放
		scale.setDuration(3000);//三秒完成动画
		set.addAnimation(scale);//增加动画
		MyActivity.this.image.startAnimation(set);
		
	}
}

 

平移代码:

public class MyActivity2 extends Activity{
	private ImageView image=null;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.mylayout2);
		image=(ImageView)super.findViewById(R.id.image2);
	}
	public void Translate(View v){
		AnimationSet set=new AnimationSet(true);
		TranslateAnimation trans=new TranslateAnimation(
				Animation.RELATIVE_TO_SELF,0.0f,
				Animation.RELATIVE_TO_SELF,0.5f,//以自身0.5宽度为轴
				Animation.RELATIVE_TO_SELF,0.0f,
				Animation.RELATIVE_TO_SELF,1.5f);//以y轴原点进行计算
		trans.setDuration(3000);//三秒完成动画
		set.addAnimation(trans);//增加动画
		MyActivity2.this.image.startAnimation(set);
		
	}

 

旋转代码

public class MyActivity3 extends Activity {
	private ImageView image=null;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.mylayout3);
		image=(ImageView)super.findViewById(R.id.imageView1);
	}
	public void Rotate(View v){
		AnimationSet set=new AnimationSet(true);
		RotateAnimation rotate=new RotateAnimation(
				0,60,//旋转角度
				Animation.RELATIVE_TO_SELF,0.5f,//以自身0.5宽度为轴
				Animation.RELATIVE_TO_SELF,0.0f);//以y轴原点进行计算
		rotate.setDuration(3000);//三秒完成动画
		set.addAnimation(rotate);//增加动画
		MyActivity3.this.image.startAnimation(set);
		
	}
}

 实现效果如下:

缩放:


平移:


旋转:




 
 

 
 

 
 

  • 大小: 101.4 KB
  • 大小: 26.8 KB
  • 大小: 7.9 KB
  • 大小: 8.6 KB
  • 大小: 8.5 KB
  • 大小: 7.8 KB
0
0
分享到:
评论

相关推荐

    可手势缩放平移及旋转的ImageView

    总之,这个"可手势缩放平移及旋转的ImageView"是一个实用的Android组件,它展示了如何通过自定义`ImageView`来增强手势交互能力。对于那些需要在应用中提供类似功能的开发者来说,这是一个很好的学习和参考资源。...

    Android动画(平移,缩放,旋转,透明)

    本文将深入探讨Android中的四大基本动画类型:平移(Translation)、缩放(Scale)、旋转(Rotation)和透明度变化(Alpha)。我们将详细了解这些动画的工作原理,以及如何在代码中实现它们。 首先,我们来讨论平移...

    Android 图片平移、旋转、缩放demo源码

    总之,这个"Android 图片平移、旋转、缩放demo源码"是一个实用的学习资源,可以帮助开发者深入理解Android中如何处理图像的交互操作。通过研究和学习这个源码,你可以了解到如何使用手势检测、`Matrix`变换以及如何...

    Android 补间动画,具体介绍了透明度、平移,旋转,缩放4种动画效果的实现,简单易懂

    在本教程中,我们将深入探讨如何实现透明度、平移、旋转和缩放这四种基本的Android补间动画。 1. **透明度动画**(Alpha Animation):透明度动画主要通过调整视图的alpha值来改变其可见度。例如,可以设置一个按钮...

    Tween 动画的旋转缩放透明度和平移 demo

    在“Tween动画的旋转缩放透明度和平移 demo”项目中,开发者可能通过两种方式来实现这些效果:一种是通过XML文件(如Android的animator资源文件)预先定义动画,然后在代码中引入执行;另一种是直接在代码中创建和...

    SVG对象绕着坐标中心实现旋转缩放平移

    解决svg对象,位置有偏移量时旋转缩放会产生偏移。绕着坐标(x,y)中心,原点 旋转缩放平移

    Android canvas 放大 缩小 平移

    Android的Matrix类提供了对2D变换的支持,包括缩放(scale)、平移(translate)和旋转(rotate)。要实现放大和缩小,我们可以创建一个Matrix对象,然后调用其setScale()方法,传入缩放的X轴和Y轴因子。例如,要将...

    Android开发之图片旋转功能实现方法【基于Matrix】

    Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。Matrix没有机构体,它必须初始化,然后通过reset方法和set方法来实现。 首先介绍一下矩阵运算。加法和减法就...

    【OpenGL ES】基于ValueAnimator的旋转、平移、缩放动效

    本资源使用 ValueAnimator 控制时间戳,使用 OpenGL ES 控制每帧绘制,实现五角星的旋转、平移、缩放动效。 详见:https://zhyan8.blog.csdn.net/article/details/123674822

    属性动画(objectAnimator,valueAnimator,平移、缩放、旋转、透明度)

    例如,可以先执行一个平移动画,然后接着执行一个旋转动画,最后通过改变透明度逐渐淡出视图。 通过学习和熟练掌握属性动画,开发者可以为Android应用添加生动有趣的交互体验,提升用户体验。同时,属性动画还能与...

    安卓动画效果相关-Android平移动画缩放动画=集合动画-实现开机启动页通过线程休眠事件跳转到主界面完整代码.rar

    总之,这个压缩包涵盖了Android动画设计的核心概念,包括平移、缩放和集合动画的使用,以及如何在开机启动页上实现动画效果和自动跳转到主界面。对于想要提升Android应用动画效果的开发者来说,这是一个宝贵的参考...

    android各种属性动画

    在Android开发中,属性动画(Property Animation)是一个强大的工具,用于创建丰富且动态的用户界面。...熟练掌握平移、旋转、缩放、透明度变化以及组合动画的使用,对于提升应用的用户体验至关重要。

    Android动画效果--渐变动画

    本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)、Translate(平移)和Rotate(旋转),以及如何通过Java代码和XML两种方式来实现这些动画。 1. **Alpha渐变动画**: Alpha动画主要用于改变...

    android图片缩放双击旋转效果

    在Android中,`Matrix`对象用于处理图像变换,如缩放、平移和旋转。当这些操作发生时,我们可以更新`ImageView`的`matrix`属性。为了使动画更平滑,可以使用`ObjectAnimator`或`ValueAnimator`来执行变换动画。 8....

    Android中用xml配置平移动画的代码清单.pdf

    Android提供了多种动画类型,其中包括补间动画(Tween Animation),它可以实现平移、旋转、透明度变化和缩放等效果。本篇文章将详细探讨如何在Android中使用XML配置平移动画。 首先,我们需要创建一个Android项目...

    Android自定义动画 3D旋转

    3D旋转是Android动画库中的一种高级技巧,通过它可以创建出逼真的立体旋转效果,为用户带来更丰富的视觉体验。 在Android中,自定义动画主要包括两种类型:属性动画(Property Animation)和视图动画(View ...

    android应用源码图片放大缩小旋转涂鸦源码.zip

    - Matrix:用于进行图像变换,如旋转、平移和缩放。开发者可能会修改ImageView的Matrix属性来实现动态调整。 - Animation:Android中的动画系统,可以用于实现平滑的图片旋转效果。 3. **手势识别**: - ...

    Android图片放大缩小旋转完美demo

    Matrix是一个二维变换矩阵,它可以实现缩放、旋转、平移等操作。当ScaleGestureDetector检测到缩放事件时,我们可以更新Matrix的ScaleX和ScaleY属性,然后使用ImageView的setImageMatrix()方法将变换应用到图片上。 ...

    android图片预览缩放

    在Android中,`Matrix`类提供了对2D图像的旋转、平移、缩放等操作。在`ScaleView`中,我们可以使用`Matrix.postScale()`方法来改变图片的缩放比例。 #### 2.3 平滑滚动和缩放 为了实现平滑的滚动和缩放效果,...

Global site tag (gtag.js) - Google Analytics