窗口抖动就是用窗口做动画,动画文件
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="10"
android:fromYDelta="0"
android:toYDelta="10"
android:duration="700"
android:interpolator="@anim/main_login_cycle_7" />
在xy方向上做位移为10的循环动画,时间是700毫秒
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="10" />
循环10次
看看布局文件;就是登陆错误的时候控件抖动
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/lin"
android:layout_height="match_parent"
android:background="#ffffffff"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="用户名"
android:textSize="15sp" />
<EditText
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:padding="10dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="密 码"
android:textSize="15sp" />
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/password"
android:background="@null"
android:padding="10dp" />
</LinearLayout>
<Button
android:background="#123654"
android:id="@+id/login"
android:text="登陆"
android:padding="10dp"
android:textSize="15sp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
package zoombigimage.com.loginanima;
import android.os.Bundle;
import android.app.Activity;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText mName;
private EditText mPassword;
private Button mLogin;
private Animation shakeanim;
private LinearLayout lin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mName = (EditText)this.findViewById(R.id.name);
mPassword = (EditText)this.findViewById(R.id.password);
shakeanim = AnimationUtils.loadAnimation(this,R.anim.layout);
mLogin = (Button)this.findViewById(R.id.login);
lin = (LinearLayout)this.findViewById(R.id.lin);
mLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!TextUtils.isEmpty(mName.getText().toString()) && !TextUtils.isEmpty(mPassword.getText().toString())){
if(mName.getText().toString().equals("wanzhicheng") && mPassword.getText().toString().equals("123456")){
Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_SHORT).show();
lin.startAnimation(shakeanim);
}else {
mName.startAnimation(shakeanim);
mPassword.startAnimation(shakeanim);
}
}
}
});
}
}
密码用户名正确窗口抖动,密码用户名错误控件抖动