Animation之震動效果動畫在登錄Activity上的應用
在賬戶登錄錯誤時,如果顯示彈出框則會顯得很難看而且不友好。
當然使用Toast也是不錯的選擇。
在這里提供一種Animation的動畫效果。
當用戶名或者密碼錯誤時,輸入框會左右震動,來表示“用戶名或者密碼錯誤”。
同時,通過這個小案例,來初步了解Animation動畫。
【注】靈感來自android自帶的API。
Animation的XML
在項目的res目錄下新建anim文件夾,用來存放Animation動畫的XML。
新建shake.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="10"
android:duration="1000"
android:interpolator="@anim/cycle_7" />其中,fromXDelta表示指定控件在動畫開始時水平方向的像素位置,toXDelta表示在水平方向上的位移像素。相應的,還可以有fromYDelta和toYDelta。
duration表示動畫的持續時間。
Animation的應用
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
findViewById(R.id.editText2).startAnimation(shake);
findViewById(R.id.editText1).startAnimation(shake);完整的應用
Java文件
package com.app;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.EditText;
import android.widget.Toast;
@SuppressLint("NewApi")
public class MyQQActivity extends Activity implements View.OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.qq_login);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
}
public void onClick(View v) {
EditText editText1 = (EditText) findViewById(R.id.editText1);
String text1 = editText1.getText().toString();
EditText editText2 = (EditText) findViewById(R.id.editText2);
String text2 = editText2.getText().toString();
switch (v.getId()) {
case R.id.button1:
if (text1.equals(text2)) {
Intent intent2 = new Intent();
intent2.setClass(MyQQActivity.this,Tabs.class );
startActivity(intent2);
int version = Integer.valueOf(android.os.Build.VERSION.SDK);
if(version >= 5) {
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
}
}
else {
Toast.makeText(MyQQActivity.this, "賬號或密碼錯誤,請重新輸入!", Toast.LENGTH_LONG).show();
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
findViewById(R.id.editText2).startAnimation(shake);
findViewById(R.id.editText1).startAnimation(shake);
editText2.setText(null);
}
break;
case R.id.button2:
//注冊賬號
Uri uri1 = Uri.parse("http://zc.qq.com/chs/index.html");
Intent it1 = new Intent(Intent.ACTION_VIEW,uri1);
startActivity(it1);
break;
case R.id.button3:
//忘記密碼
Uri uri2 = Uri.parse("https://aq.qq.com/cn2/findpsw/pc/pc_find_pwd_input_account");
Intent it2 = new Intent(Intent.ACTION_VIEW,uri2);
startActivity(it2);
break;
default:
break;
}
}
}layout文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/qqlogin"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/phone_call_bg"
android:padding="10dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="120dp"
android:layout_marginTop="15dp"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="15dp"
android:background="@drawable/login_management_background"
android:padding="10dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:text="賬號"
android:textSize="20dp"
android:textColor="#333"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:layout_marginLeft="15dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:text="密碼"
android:textSize="20dp"
android:textColor="#333"/>
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="3dp"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_marginLeft="22dp"
android:drawableTop="#fff"
android:hint="用戶名/郵箱"
android:phoneNumber="true"
android:layout_toRightOf="@+id/textView1"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignLeft="@+id/editText1"
android:ems="10"
android:phoneNumber="true"
android:drawableTop="#fff"
android:hint="請輸入密碼"
android:inputType="textPassword" />
</RelativeLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_marginTop="15dp"
android:layout_height="40dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="170dp"
android:layout_height="40dp"
android:layout_marginLeft="60dp"
android:background="@drawable/bg_alibuybutton"
android:text="登 錄"
android:gravity="center"
android:textSize="20sp"
android:textColor="#000000"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_marginTop="100dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:text="注冊賬號" />
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:text="忘記密碼" />
</LinearLayout>
</LinearLayout>效果圖

本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!