网友通过本文主要向大家介绍了Android学习第五篇——动画效果等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Android学习第五篇——动画效果
接下来我要介绍的是Android的一些动画效果
一、AlphaAnimation透明动画
这里我用到了两种不同的方法来实现透明动画效果
首先布局文件很简单,就是拖放一个按钮在界面上
1、直接调动AlphaAnimation类
我们到MainActivity文件中,找到PlaceholderFragment,接下来我们在这里面执行接下来的方法
public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } }我们首先要获取那个按钮,然后对按钮添加监听事件
rootView.findViewById(R.id.btnAnimate).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } });接下来就是最关键的添加动画效果
rootView.findViewById(R.id.btnAnimate).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlphaAnimation aa=new AlphaAnimation(0, 1);//
AlphaAnimation(float fromAlpha, float toAlpha)起始透明度和结束透明度</div> aa.setDuration(1000);//变化持续的时间1000ms v.startAnimation(aa); } });代码写到这里就已经完成了我们的效果,直接在模拟器中运行就可以看到效果了。
2、调用另外的XML动画文件
相对于上面的这种方法,接下来的方法,在调用的时候会显得更加简单,就是一句话的事
public void onClick(View v) { v.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.aa)); }只要这么一句话就结束了,但是关键在于R.anim.aa这个文件
我们需要新建一个XML文件,并且把Resource Type设为下图的值,填上文件名,然后选择alpha,点击Finish就完成了
接下来我们在创建的文件中作如下编写就直接可以调用了
这样我们也完成了第二种方法。
二、RotateAnimation旋转动画
这里我同样会用两种方法来实现旋转动画,跟第一个动画一样</div> </div> 我们同样是一个按钮作为对象</div> 布局文件</div></div>
1、直接调用RotateAnimation
接下来我们就要到MainActivity中进行操作了</div> 首先定义一下</div>private RotateAnimation ra;接下来我们会在onCreate中操作</div>
ra=new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(1000); findViewById(R.id.btnRotate).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.startAnimation(ra); } });我们一开始调用的构造函数是下面这个</div>
ra=new RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue)这里面的参数分别表示为:开始角度,目标角度,X坐标类型,X坐标值,Y坐标类型,Y坐标值</div> 为什么我们要用这个呢??</div> 因为我们需要通过这个来控制按钮是围绕哪个中心进行旋转的,上面设置的值表示“按钮围绕自身X的一半,Y的一半,转一圈”,我们会觉这样写很繁琐,有时候会不记得那个类型怎么写,所以我们接下来看看第二种方法(上述代码已经可以运行了,运行结果就是点击按钮后会旋转一圈)</div>
2、调用XML文件
XML文件的创建和第一种的一样,只是下面的根标签要换成Rotate</div>可能看了这个以后我们会疑问,为什么这里不用写pivotX和pivotY的Type了呢??</div> 因为在这里,pivotX和pivotY可以接受百分比的值,这样我们就觉得很方便,当然如果这两个值设成数值,表示的是像素。</div> 最后一步就很简单了,只要在MainActivity中调用就可以了</div>
findViewById(R.id.btnRotate).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.ra)); } });第二种方法到这里就完成了,代码执行的效果和前一种是一样的。
</div>
三、TranslateAnimation移动动画
</div> 布局文件</div></div>
1、直接调用TranslateAnimation
</div> 方法和之前的没有很大的差别,就不在多说,直接贴代码了</div>private TranslateAnimation ta; //相对于自身来说,向右移动200增量,和向下移动200增量 ta = new TranslateAnimation(0, 200, 0, 200); ta.setDuration(1000); findViewById(R.id.btnTranslate).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.startAnimation(ta); } });</div>
2、调用XML文件
同样和之前没事差别,改变的只是XML文件的根标签Translate</div>最后调用</div>
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.ta));这两个的效果是完全相同的,各个参数的值表示什么意思上面的注释中已经有了</div> </div>
四、ScaleAnimation缩放动画
</div> 布局文件</div><framelayout android:id="@+id/container" android:layout_height="match_parent" android:layout_width="match_parent" tools:context="com.example.scaleanimation.MainActivity" tools:ignore="MergeRootFrame" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"></framelayout></div>
1.、直接调用ScaleAnimation
</div>private ScaleAnimation sa;//这句需要定义在外面 //相对于自身的中心点来缩放 sa = new ScaleAn