- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 下面就讲一下Tweene Animations。 主要类: Animation 动画 AlphaAnimation 渐变透明度 RotateAnimation 画面旋转 ScaleAnimation 渐变尺寸缩放 TranslateAnimation 位置移动 AnimationSet 动画集 一.AlphaAnimation 其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。 setDuration用来设置动画持续时间。 二.RotateAnimation 其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度, 第二个参数toDegrees表示动画结束时的角度。 另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。 三.ScaleAnimation ScaleAnimation类中 第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。 第三个参数fromY ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。 另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。 四.TranslateAnimation 第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。 第三个参数fromYDelta ,第四个参数toYDelta:分别是动画起始、结束时Y坐标。 下面我实现的这个例子是使得图片有上述四个动画效果,且其中第五实现的是两个效果的重叠,具体的实现截图如下: 点击各个按钮会做出相应的反应。 本实例用到的布局文件如下:
复制代码 代码如下
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/button_scale" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="scale" android:layout_x="5dp" android:layout_y="383dp" /> <Button android:id="@+id/button_rotate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="rotate" android:layout_x="158dp" android:layout_y="383dp" /> <Button android:id="@+id/button_alpha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="alpha" android:layout_x="5dp" android:layout_y="331dp" /> <Button android:id="@+id/button_translate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="translate" android:layout_x="160dp" android:layout_y="329dp" /> <Button android:id="@+id/button_alpha_translate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="alpha_translate" android:layout_x="84dp" android:layout_y="265dp" /> <ImageView android:id="@+id/imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="105dp" android:layout_y="133dp" android:src="@drawable/ic_launcher" /> </AbsoluteLayout> 。
实现本实例的源代码如下:
复制代码 代码如下
public class Animations_Activity extends Activity { private Button button1; private Button button2; private Button button3; private Button button4; private Button button5; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_animations_); button1=(Button)findViewById(R.id.button_alpha); button2=(Button)findViewById(R.id.button_rotate); button3=(Button)findViewById(R.id.button_scale); button4=(Button)findViewById(R.id.button_translate); button5=(Button)findViewById(R.id.button_alpha_translate); imageView=(ImageView)findViewById(R.id.imageview); button1.setOnClickListener(new MyButton()); button2.setOnClickListener(new MyButton()); button3.setOnClickListener(new MyButton()); button4.setOnClickListener(new MyButton()); button5.setOnClickListener(new MyButton()); } class MyButton implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub switch (arg0.getId()) { case R.id.button_alpha: Alpha(); break; case R.id.button_rotate: Rotata(); break; case R.id.button_scale: Scale(); break; case R.id.button_translate: Translate(); break; case R.id.button_alpha_translate: Alpha_Translate(); break; default: break; } } } /* * 1.创建一个AnimationSet对象,该对象存储的是动画的集合 * 2.根据需要创建相应的Animation对象 * 3.根据动画的需求,为Animation对象设置相应的数据(即执行效果) * 4.奖Animation对象添加到AnimationSet对象当中 * 5.使用控件对象开始执行AnimationSet */ public void Alpha() { AnimationSet animationSet=new AnimationSet(true); AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0); alphaAnimation.setDuration(2000); animationSet.addAnimation(alphaAnimation); imageView.startAnimation(animationSet); } public void Rotata(){ AnimationSet animationSet=new AnimationSet(true); //后面的四个参数定义的是旋转的圆心位置 RotateAnimation rotateAnimation=new RotateAnimation( 0, 360, Animation.RELATIVE_TO_PARENT, 1f, Animation.RELATIVE_TO_PARENT, 0f); rotateAnimation.setDuration(2000); animationSet.addAnimation(rotateAnimation); imageView.startAnimation(animationSet); } public void Scale() { AnimationSet animationSet=new AnimationSet(true); ScaleAnimation scaleAnimation=new ScaleAnimation( 1, 0.1f, 1, 0.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(2000); animationSet.addAnimation(scaleAnimation); imageView.startAnimation(scaleAnimation); } public void Translate() { AnimationSet animationSet=new AnimationSet(true); TranslateAnimation translateAnimation=new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置 Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置 Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置 Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置 translateAnimation.setDuration(2000); animationSet.addAnimation(translateAnimation); /* * 第一行的设置如果为true,则动画执行完之后效果定格在执行完之后的状态 * 第二行的设置如果为false,则动画执行完之后效果定格在执行完之后的状态 * 第三行设置的是一个long类型的值,是指动画延迟多少毫秒之后执行 * 第四行定义的是动画重复几次执行 */ animationSet.setFillAfter(true); animationSet.setFillBefore(false); animationSet.setStartOffset(2000); animationSet.setRepeatCount(3); imageView.startAnimation(animationSet); } public void Alpha_Translate() { AnimationSet animationSet=new AnimationSet(true); AlphaAnimation alphaAnimation=new AlphaAnimation(1, 0); alphaAnimation.setDuration(2000); animationSet.addAnimation(alphaAnimation); TranslateAnimation translateAnimation=new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, //X轴的开始位置 Animation.RELATIVE_TO_SELF, 0.5f, //X轴的结束位置 Animation.RELATIVE_TO_SELF, 0f, //Y轴的开始位置 Animation.RELATIVE_TO_SELF, 1.0f); //Y轴的结束位置 translateAnimation.setDuration(2000); animationSet.addAnimation(translateAnimation); imageView.startAnimation(animationSet); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_animations_, menu); return true; } } 。
最后此篇关于Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转的文章就讲到这里了,如果你想了解更多关于Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
...沮丧。我希望我的游戏仅在横向模式下运行。我已将适当的键/值添加到 Info.plist 文件中,以强制设备方向在启动时正确。 我现在正在尝试旋转 OpenGL 坐标空间以匹配设备的坐标空间。我正
我如何创建一个旋转矩阵,将 X 旋转 a,Y 旋转 b,Z 旋转 c? 我需要公式,除非您使用的是 ardor3d api 的函数/方法。 矩阵是这样设置的 xx, xy, xz, yx, yy, y
假设我有一个包含 3 个 vector 的类(一个用于位置,一个用于缩放,一个用于旋转)我可以使用它们生成一个变换矩阵,该矩阵表示对象在 3D 空间中的位置、旋转和大小。然后我添加对象之间的父/子关系
所以我只是在玩一个小的 javascript 游戏,构建一个 pacman 游戏。你可以在这里看到它:http://codepen.io/acha5066/pen/rOyaPW 不过我对旋转有疑问。你
在我的应用程序中,我有一个 MKMapView,其中显示了多个注释。 map 根据设备的航向旋转。要旋转 map ,请执行以下语句(由方法 locationManager 调用:didUpdateHe
使用此 jquery 插件时:http://code.google.com/p/jqueryrotate/wiki/Documentation我将图像旋转 90 度,无论哪个方向,它们最终都会变得模糊
我有以下代码:CSS: .wrapper { margin:80px auto; width:300px; border:none; } .square { widt
我只想通过小部件的轴移动图像并围绕小部件的中心旋转(就像任何数字绘画软件中的 Canvas ),但它围绕其左顶点旋转...... QPainter p(this); QTransform trans;
我需要先旋转图像,然后再将其加载到 Canvas 中。据我所知,我无法使用 canvas.rotate() 旋转它,因为它会旋转整个场景。 有没有好的JS方法来旋转图片? [不依赖于浏览器的方式] 最
我需要知道我的 Android 设备屏幕何时从一个横向旋转到另一个横向(rotation_90 到 rotation_270)。在我的 Android 服务中,我重新实现了 onConfigurati
**摘要:**本篇文章主要讲解Python调用OpenCV实现图像位移操作、旋转和翻转效果,包括四部分知识:图像缩放、图像旋转、图像翻转、图像平移。 本文分享自华为云社区《[Python图像处理] 六
我只是在玩MTKView中的模板设置;并且,我一直在尝试了解以下内容: 相机的默认位置。 使用MDLMesh和MTKMesh创建基元时的默认位置。 为什么轮换还涉及翻译。 相关代码: matrix_f
我正在尝试使用包 dendexend 创建一个树状图。它创建了非常好的 gg 树状图,但不幸的是,当你把它变成一个“圆圈”时,标签跟不上。我将在下面提供一个示例。 我的距离对象在这里:http://s
我想将一个完整的 ggplot 对象旋转 90°。 我不想使用 coord_flip因为这似乎会干扰 scale="free"和 space="free"使用刻面时。 例如: qplot(as.fac
我目前可以通过首先平移到轴心点然后执行旋转最后平移回原点来围绕轴心点旋转。在我的例子中,我很容易为肩膀做到这一点。但是,我不知道如何为前臂添加绕肘部的旋转。 我已经尝试了以下围绕肘部旋转的前臂: 平移
我想使用此功能旋转然后停止在特定点或角度。现在该元素只是旋转而不停止。代码如下: $(function() { var $elie = $("#bkgimg");
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我正在尝试创建一个非常简单的关键帧动画,其中图形通过给定的中点从一个角度旋转到另一个角度。 (目的是能够通过大于 180 度的 OBTUSE 弧角来制作旋转动画,而不是让动画“作弊”并走最短路线,即通
我需要旋转 NSView 实例的框架,使其宽度变为其高度,其高度变为其宽度。该 View 包含一个字符串,并且该字符串也被旋转,这一点很重要。 我查看了 NSView 的 setFrameRotati
我正在编写一个脚本,用于在 javascript 中旋转/循环浏览图像,同时遵守循环浏览图像的次数限制。我所拥有的如下: var delay = 3000; //6000 = change to
我是一名优秀的程序员,十分优秀!