Android开发笔记--关于Android动画
2016-06-27 17:23
405 查看
在朋友的建议下,开始尝试总结自己项目中遇到的问题和解决办法,第一篇就从最近用到的Android动画效果说起吧!
首先在Android中 的动画效果:1、补间动画;2、帧动画 3、属性动画
Tweened Animations:继承自Animations,实现了Alpha淡入淡出效果,Scale缩放效果,Rotate旋转效果,Translate移动效果.
使用方法:
Android动画解析--XML
<alpha>
<scale>
<translate>
<rotate>
如何使用XML中的动画效果
[b]如何在Java代码中定义动画[/b]
Android动画解析--JavaCode
Alpha[b]Animation[/b]
① AlphaAnimation类对象定义
② AlphaAnimation类对象构造
③ 设置动画持续时间
Scale[b]Animation[/b]
① ScaleAnimation类对象定义
② ScaleAnimation类对象构造
③ 设置动画持续时间
Translate[b]Animation[/b]
① TranslateAnimation类对象定义
② TranslateAnimation类对象构造
Rotate[b]Animation[/b]
① RotateAnimation类对象定义
② RotateAnimation类对象构造
③ 设置动画持续时间
实际效果例子:(旋转效果配合缩放效果显示)
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!-- 弹出时动画 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 旋转效果 -->
<rotate
android:duration="400"
android:fromDegrees="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="+350" />
<!-- 缩放效果 -->
<scale
android:duration="400"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="0%"
android:pivotY="0%"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
在activity中调用添加了动画效果的activity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void doClick(View view) {
switch (view.getId()) {
case R.id.btn_main:
dialog();
break;
default:
break;
}
}
private void dialog() {
GuideDialog dialog = new GuideDialog(MainActivity.this);
dialog.setCancelable(true);
dialog.show();
}
}
在Dialog中添加动画
public class GuideDialog extends Dialog {
private Activity activity;
public GuideDialog(Activity activity) {
super(activity, android.R.style.Theme);
this.activity = activity;
setOwnerActivity(activity);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 填充标题栏
setContentView(R.layout.progressdialog_guide);
Window window = getWindow();
window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
}
}
例子下载地址:http://download.csdn.net/detail/wangyetongsss/9561043
首先在Android中 的动画效果:1、补间动画;2、帧动画 3、属性动画
补间动画:Tween动画,即通过对控件进行一系列的图形变换来实现的动画效果(主要是平移,旋转,缩放,改变透明度四种效果组合)其中参考链接http://www.cnblogs.com/aimeng/archive/2011/10/10/2206710.html
Animations:实现了控件的动画效果,主要有旋转,缩放,淡入淡出,,平移Tweened Animations:继承自Animations,实现了Alpha淡入淡出效果,Scale缩放效果,Rotate旋转效果,Translate移动效果.
使用方法:
Android动画解析--XML
<alpha>
Alpha[b]Animation[/b]
① AlphaAnimation类对象定义
① ScaleAnimation类对象定义
① TranslateAnimation类对象定义
① RotateAnimation类对象定义
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<!-- 弹出时动画 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 旋转效果 -->
<rotate
android:duration="400"
android:fromDegrees="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="+350" />
<!-- 缩放效果 -->
<scale
android:duration="400"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="0%"
android:pivotY="0%"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
在activity中调用添加了动画效果的activity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void doClick(View view) {
switch (view.getId()) {
case R.id.btn_main:
dialog();
break;
default:
break;
}
}
private void dialog() {
GuideDialog dialog = new GuideDialog(MainActivity.this);
dialog.setCancelable(true);
dialog.show();
}
}
在Dialog中添加动画
public class GuideDialog extends Dialog {
private Activity activity;
public GuideDialog(Activity activity) {
super(activity, android.R.style.Theme);
this.activity = activity;
setOwnerActivity(activity);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 填充标题栏
setContentView(R.layout.progressdialog_guide);
Window window = getWindow();
window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
}
}
例子下载地址:http://download.csdn.net/detail/wangyetongsss/9561043
相关文章推荐
- Android 中启动一个activity,怎么写才好
- Android Studio上gradle配置Lambda表达式
- 获取版本名称 VersionName
- android客户端从服务器端获取json数据并解析的实现代码
- Android实现计时与倒计时的几种方法
- android获取缓存大小和清除缓存
- android clearFocus 真的无效吗?
- Android Robotium黑盒测试封装为Apk
- 设置自动跳转页面
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- 关于android系统Binder机制解析
- MD5加密
- Android studio mac/windows 常用快捷键
- 检测系统中是否安装某款软件
- android 资讯阅读器(二)
- Android studio怎么使用git获取最新内容然后合并?
- 基于ndk jni技术实现串口收发的方法
- Android真机调试打印日志的方法
- 自定义提示加载数据Dialog的实现
- android:贝塞尔曲线简单实现