AndroidBasic————Animotion
2016-04-18 00:14
489 查看
1.menu菜单 了解
1.将菜单资源加载给Menu对象做展示 a.复写onCreateOptionsMenu方法 b。创建一个菜单资源 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_goon" android:orderInCategory="300" android:title="前进"/> </menu> c。在onCreateOptionsMenu方法中使用菜单填充器将菜单资源添加给menu做展示 //当Activity创建时,会被调用,用来初始化当前Activity的菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { //使用菜单填充器,将一个菜单资源填充给Menu对象 两个参数:菜单资源的id ,menu对象 getMenuInflater().inflate(R.menu.main, menu); return true; } d.要想为菜单项设置点击事件需要复写一个方法onMenuItemSelected,并获取选中的菜单项的id做比较 2.在onCreateOptionsMenu方法中动态的向menu对象中添加菜单项 //groupId:菜单的分组id itemId:菜单项的id order:该菜单的顺序, title:菜单的名称 menu.add(0, 1, 1, "前进"); menu.add(0, 2, 2, "后退"); menu.add(0, 3, 3, "刷新"); 3.当需要自定义菜单时,我们可以复写onMenuOpened方法,将返回结果变成false,就不会再去调用系统中的菜单,我们可以在该方法中做我们自己想做的事。
2.AutoCompleteTextView控件的使用 掌握
使用方式类似于listview;completionThreshold可以控制输入几个字符进行提示;默认输入2个字符才会进行提示 //1.找控件 AutoCompleteTextView act_city = (AutoCompleteTextView) findViewById(R.id.act_city); //2.创建ArrayAdapter ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, citys); //3.将adapter设置给AutoCompleteTextView act_city.setAdapter(adapter);
3.帧动画 Drawable 掌握
1.在res的drawable目录下创建一个xml文件,并设置一个根节点:animation-list ;该节点中可以配置一个oneshot属性来决定动画是否只执行一次 oneshot:true 执行一次动画 2.为animation-list添加动画的一个一个帧的图片,用item节点标示。item可以用来指定该帧的图片及该帧所播放的事件 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/girl_1" android:duration="200"/> <item android:drawable="@drawable/girl_2" android:duration="200"/> </animation-list > 3.为imageview控件设置一个动画背景资源 iv_animation.setBackgroundResource(R.drawable.drawableanimation); 4.通过iv获取一个背景对象,并强转成AnimationDrawable 动画对象 AnimationDrawable ani = (AnimationDrawable) iv_animation.getBackground(); 5.开启动画 ani.start();
4.补间动画 view动画 掌握
补间动画的动画效果不会改变控件的实际位置; 1.透明动画 AlphaAnimation //1.创建一个透明动画的对象 fromAlpha:动画开始开始透明度 toAlpha:动画结束时的透明度 //取值是0-1 0代表完全透明 1完全不透明 AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); //2.设置动画的展示时长 alphaAnimation.setDuration(2000); //3.设置让动画能够重复执行 alphaAnimation.setRepeatCount(1); //4.设置动画重复执行的模式 REVERSE:反转模式 alphaAnimation.setRepeatMode(Animation.REVERSE); //5.使用Imageview对象去开启该动画 iv_animation.startAnimation(alphaAnimation); 2.旋转动画 RotateAnimation //1.创建一个旋转动画 fromDegrees:开始旋转的角度 toDegrees:旋转的结束角度 //pivotXType:x轴相对于谁进行旋转 可以相对于自己,也可以相对于父控件 pivotXValue: 相对于自己x轴的多少倍进行旋转,慎用整数 RotateAnimation rotateAnimation= new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 3.缩放动画 ScaleAnimation //1.创建一个缩放动画 fromX:x轴的坐标点从多少倍开始放大 toX:x轴的坐标放大到多少倍 //pivotXType:x轴相对于谁进行旋转 可以相对于自己,也可以相对于父控件 pivotXValue: 相对于自己x轴的多少倍进行旋转,慎用整数 ScaleAnimation scaleAnimation = new ScaleAnimation(1, 2, 1, 2, Animation.RELATIVE_TO_SELF, 0.5F, Animation.RELATIVE_TO_SELF, 0.5F); 4.位移动画 TranslateAnimation //1. 创建一个位移动画 //fromXType:动画起点x轴相对谁进行移动 fromXValue:x轴坐标点从当前坐标点的多少倍的位置开始移动 toYValue :y轴坐标点移动到父窗体多少倍的位置 TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, -0.3f); 5.集合动画 将以上4种动画联合一起的效果 SetAnimation //创建一个集合动画 AnimationSet animationSet = new AnimationSet(true);
5.应用的反编译 了解
反编译可以干嘛? 1.查看apk的androidmanifest的配置信息 2.查看apk的资源文件 drawbla layout 3.查看代码 4.改包名,改应用图标,加广告赚钱; 如何反编译?借助工具, 1.apktools 可以帮助我们看apk的 配置文件和资源文件 2.guit 看源码
6.使用xml方式定义补间动画 掌握
1.在res下创建一个anim文件夹,然后创建相应的动画资源 <rotate android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="2000" android:repeatCount="1" android:repeatMode="reverse" xmlns:android="http://schemas.android.com/apk/res/android"> </rotate> 2.在代码中加载动画资源设置给iv开启 //使用AnimationUtils加载一个动画资源 Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate); //5.使用Imageview对象去开启该动画 iv_animation.startAnimation(animation);
7.属性动画 Property 了解
特点:属性动画的动画效果可以改变动画的位置; //位移动画 public void translate(View v){ //创建属性动画 /** * target 执行的目标 哪个控件执行动画 * propertyName 属性名字 The name of the property being animated. * float... values 可变参数 */ ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "translationX", 10, 50,20,150,120,150,120,150); oa.setDuration(2000); oa.start(); //开始动画 } //缩放动画 public void scale(View v){ ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "scaleY", 0.1f, 2, 1, 2,1,2,1,2,1, 2,1,2,1,2); oa.setDuration(2000); oa.start(); } //实现透明的效果 public void alpha(View v){ ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "alpha", 0, 0.5f, 0, 1,0,1,0,0); oa.setDuration(2000); oa.start(); } //实现旋转的效果 public void rotate(View v){ // ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "rotation", 0, 180, 90, 360); ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "rotationX", 0, 180, 90, 360); oa.setDuration(2000); oa.start(); } //一起飞 public void fly(View v){ AnimatorSet as = new AnimatorSet(); ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "translationX", 10, 50, 20, 100); ObjectAnimator oa2 = ObjectAnimator.ofFloat(iv, "scaleY", 0.1f, 2, 1, 2); ObjectAnimator oa3 = ObjectAnimator.ofFloat(iv, "alpha", 0, 0.5f, 0, 1); ObjectAnimator oa4 = ObjectAnimator.ofFloat(iv, "rotationY", 0, 180, 90, 360); as.setDuration(2000); as.setTarget(iv); //往集合中添加动画 //挨个飞 as.playSequentially(oa, oa2, oa3, oa4); //一起飞 // as.playTogether(oa, oa2, oa3, oa4); as.start(); } //使用xml的方式创建属性动画 public void playxml(View v){ ObjectAnimator oa = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.oanimator); //设置执行目标 oa.setTarget(iv); oa.start();//开始执行 }
相关文章推荐
- Android 以任意比例裁剪图片代码分享
- Android 基于帧布局实现一个进度条 FrameLayout+ProgressBar
- Android Studio中使用AIDL--摘自陈丰尧老师博客160402
- Android之zxing二维码生成于识别
- Android BroadcastReceiver
- Android Service
- Android项目如何进行签名打包发布
- 手把手教android studio中安装Android Butterknife Zelezny
- Android学习之浅谈对MVC模式和MVP模式的理解
- Activity的生命周期(android学习笔记)
- androidpn(安卓信息推送工具)
- android 实现倒影
- android 实现倒影
- android 实现倒影
- android studio “aapt” IOException error=2, No such file or directory"
- Android日志Log
- Android Studio下的应用性能优化总结--布局优化
- 从Android开发谈谈对编程语言的看法
- Android Studio 2.0 NDK开发环境搭建
- android studio之genymotion问题