应用场景:

在Android的开发过程,为了给用户提供一种明了的提醒效果,如登录时,密码未填写;查询操作时,未填写查询条件信息。使密码EditView与查询Button,出现抖动效果,以提醒用户为填写相关信息。

解决方法:

该解决方法,参考了【Android 动画特效的运用】这篇文章。

知识点介绍:

Android中, alpha rotate,scale,translate主要属性说明

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <!-- 透明度 渐变 -->    <!--       fromAlpha:开始时透明度      toAlpha: 结束时透明度      duration:动画持续时间 --> <alpha    android:fromAlpha="1.0"    android:toAlpha="0.0"    android:duration="500"></alpha><!-- 旋转 --><!--     fromDegrees   动画开始时的角度   toDegrees     动画结束时物件的旋转角度,正代表顺时针     pivotX    属性为动画相对于物件的X坐标的开始位置  pivotY    属性为动画相对于物件的Y坐标的开始位置 duration:动画持续时间     -->  <rotate    android:fromDegrees="300"    android:toDegrees="230"    android:pivotX="10"    android:pivotY="20"    android:duration="500"></rotate><!-- 伸缩 --><!--    interpolator            指定动画插入器  【常见的有加速减速插入器         accelerate_decelerate_interpolator  加速插入器               accelerate_interpolator,  减速插入器               decelerate_interpolator。】   fromXScale,fromYScale,         动画开始前X,Y的缩放,0.0为不显示,  1.0为正常大小  toXScale,toYScale,          动画最终缩放的倍数, 1.0为正常大小,大于1.0放大  pivotX,  pivotY         动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始   startOffset,                   动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,  单位毫秒 duration,一次动画效果消耗的时间,单位毫秒,  值越小动画速度越快 repeatCount,动画重复的计数,动画将会执行该值+1次       repeatMode,动画重复的模式,【reverse为反向,当第偶次执行时,动画方向会相反。         restart为重新执行,方向不变】 -->  <scale    android:fromXScale="1.0"    android:fromYScale="1.0"    android:toXScale="1.0"    android:toYScale="1.0"    android:pivotX="50%"    android:pivotY="50%"    android:duration="500"    android:repeatCount="5"    android:repeatMode="restart">    </scale><!-- 移动 --><!--    fromXDelta,fromYDelta       起始时X,Y座标,屏幕右下角的座标是X:320,Y:480   toXDelta, toYDelta      动画结束时X,Y的座标duration,一次动画效果消耗的时间,单位毫秒,  值越小动画速度越快  --> <translate    android:fromXDelta="0%p"    android:fromYDelta="50%p"    android:toXDelta="10%"    android:toYDelta="20%"    android:duration="500"></translate></set>

使用方式:

第一步:新建一个项目工程AndroidShakeTest,主布局文件activity_main.xml为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"    android:padding="10dip"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <TextView         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="10dip"        android:text="请输入您的密码:"/>    <EditText android:id="@+id/pw"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:clickable="true"        android:singleLine="true"        android:inputType="textPassword"/>    <Button android:id="@+id/login"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="登录"/></LinearLayout>

第二步:首先在res文件夹中添加anim文件app_cycle_7.xml。

<?xml version="1.0" encoding="utf-8"?><cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"     android:cycles="7"/>

第三步:然后在res文件夹中添加anim文件shake.xml。

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="3000"    android:fromXDelta="0"    android:interpolator="@anim/app_cycle_7"    android:toXDelta="10" ></translate>

第四步:最后新建测试项目进行使用,MainActivity.java。

import android.os.Bundle;import android.app.Activity;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity implements View.OnClickListener {private Button button;private EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.login);editText = (EditText) findViewById(R.id.pw);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);editText.startAnimation(shake);}}


更多相关文章

  1. Android 根文件系统启动过程。
  2. android 下载网络pdf文件后并显示
  3. Android 上传头像(文件)到服务器
  4. Android代码混淆配置(Proguard文件解析)
  5. 升级Android SDK后ADT找不到adb.exe文件的解决办法
  6. android组件化方案、二维码扫码、Kotlin新闻客户端、动画特效等
  7. Android中activity切换动画的两种实现(附种17种动画效果)
  8. Android 属性动画原理与DataBinding
  9. android 文件系统分析

随机推荐

  1. Android ListView异步加载图片乱序问题,原
  2. Android性能测试用例
  3. Android开发之实现图片自动滚动显示标签
  4. android SD卡学习3-读写文件
  5. Ormlite 介绍 一
  6. Android常用开发工具的用法
  7. Java泛型应用之打造Android中ListView和G
  8. Android Data Storage --- Android 数据存储
  9. 浅谈GridView
  10. Android 前景