zoukankan      html  css  js  c++  java
  • EditText X/Y轴和仿苹果 抖动效果

    ShakeDemo\res\layout\main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/bg"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/bg"
        android:orientation="vertical" >
    
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:text="@string/mShake"
            android:textSize="20sp"
            android:textStyle="bold"
            android:textColor="#000000" />
    
        <EditText
            android:id="@+id/passWd"
            android:layout_marginTop="20dip"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:layout_below="@+id/text"
            android:layout_centerHorizontal="true"
            android:clickable="true"
            android:singleLine="true" />
    
        <Button
            android:id="@+id/shake_x"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/passWd"
            android:text="X轴抖动" />
    
        <Button
            android:id="@+id/shake_y"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/shake_x"
            android:layout_alignBottom="@+id/shake_x"
            android:layout_alignParentRight="true"
            android:text="Y轴抖动" />
    
        <Button
            android:id="@+id/shake"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/shake_x"
            android:layout_alignBottom="@+id/shake_x"
            android:layout_centerHorizontal="true"
            android:text="仿苹果抖动" />
    
        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/shake"
            android:layout_below="@+id/shake"
            android:layout_marginTop="23dp"
            android:src="@drawable/icon" />
    
    </RelativeLayout>
    View Code

    ShakeDemo\src\com\shake\ShakeDemoActivity.java

            // 仿苹果抖动效果
            shake.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Animation shake = AnimationUtils.loadAnimation(
                            ShakeDemoActivity.this, R.anim.anim);
                    shake.reset();
                    shake.setFillAfter(true);
                    // 图片控件
                    image.startAnimation(shake);
                }
            });
            // X轴抖动
            shake_x.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Animation shakeAnim = AnimationUtils.loadAnimation(ShakeDemoActivity.this,
                            R.anim.shake_x);
                    passWd.startAnimation(shakeAnim);
                }
            });
            // Y轴抖动
            shake_y.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Animation shakeAnim = AnimationUtils.loadAnimation(ShakeDemoActivity.this,
                            R.anim.shake_y);
                    passWd.startAnimation(shakeAnim);
                }
            });
    View Code

    ShakeDemo\res\anim\anim.xml

    <?xml version="1.0" encoding="utf-8"?>
    <rotate 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="180"
        android:fromDegrees="-2"
        android:pivotX="100%"
        android:pivotY="100%"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:toDegrees="2" />
    View Code

    ShakeDemo\res\anim\cycle.xml

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

    ShakeDemo\res\anim\shake_x.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" />
    View Code

    ShakeDemo\res\anim\shake_y.xml

    <?xml version="1.0" encoding="utf-8"?>
    <translate 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="1000"
        android:fromYDelta="0"
        android:interpolator="@anim/cycle"
        android:toYDelta="10" >
    </translate>
    View Code


    DEMO完整下载路径  http://download.csdn.net/detail/androidsj/5434921

  • 相关阅读:
    springmvc整合elasticsearch
    测试中出现ERROR StatusLogger No log4j2 configuration file
    SpringBoot项目取消数据库配置
    centos7 更换jdk版本
    对前后端解耦的理解
    满足java对redis的所有操作,token,验证码过期时间等
    在spring的过滤器中注入实体类(@autowire会失效可使用这个方法)
    linux 下vim中关于删除某段,某行,或全部删除的命令
    解决问题Can’t connect to local MySQL server through socket
    centos6.5 mqtt安装
  • 原文地址:https://www.cnblogs.com/androidsj/p/3094841.html
Copyright © 2011-2022 走看看