2012-05-04 28 views
6

Tôi có một nút hình ảnh mà tôi muốn lắc/lắc khi chạm vào. Tôi muốn nó lung lay theo cách tương tự như các biểu tượng ứng dụng iPhone làm khi chúng được nhấn trong một thời gian rất dài.Làm cách nào để làm cho hình ảnh rung/lung lay khi được nhấp?

Cảm ơn!

+0

Google đã cho tôi điều này: http://stackoverflow.com/questions/9448732/shaking-wobble-view-animation-in-android. – Warpzit

+3

Và google đã cho tôi [wiggle wiggle wiggle wiggle wiggle yeahgle] (http://www.youtube.com/watch?v=xRKcHK1PiuU) – goat

Trả lời

11

Hãy thử điều này để lắc hình ảnh trên trình nghe nhấp chuột vào lần xem hình ảnh.

public void onClick(View v) 
    { 
    Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); 
    findViewById(R.id.pw).startAnimation(shake); 
    } 

Xem đoạn mã này được lấy từ các Demo API android here

+3

ở đâu là hoạt hình? Không phải trong liên kết ... – for3st

12

cố gắng sử dụng này một:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <rotate 
     android:duration="70" 
     android:fromDegrees="-5" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:repeatCount="5" 
     android:repeatMode="reverse" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:toDegrees="5" /> 
    <translate 
     android:fromXDelta="-10" 
     android:toXDelta="10" 
     android:repeatCount="5" 
     android:repeatMode="reverse" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:duration="70" /> 
</set> 
6

Tôi thích video này một

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:fillAfter="true"> 

    <translate 
     android:fromXDelta="-20" 
     android:toXDelta="19" 
     android:duration="20" /> 
    <translate 
     android:startOffset="20" 
     android:fromXDelta="19" 
     android:toXDelta="-18" 
     android:duration="20" /> 
    <translate 
     android:startOffset="40" 
     android:fromXDelta="-18" 
     android:toXDelta="17" 
     android:duration="20" /> 
    <translate 
     android:startOffset="60" 
     android:fromXDelta="17" 
     android:toXDelta="-16" 
     android:duration="20" /> 
    <translate 
     android:startOffset="80" 
     android:fromXDelta="-16" 
     android:toXDelta="14" 
     android:duration="20" /> 
    <translate 
     android:startOffset="100" 
     android:fromXDelta="14" 
     android:toXDelta="-12" 
     android:duration="20" /> 
    <translate 
     android:startOffset="120" 
     android:fromXDelta="-12" 
     android:toXDelta="10" 
     android:duration="20" /> 
    <translate 
     android:startOffset="140" 
     android:fromXDelta="10" 
     android:toXDelta="-7" 
     android:duration="20" /> 
    <translate 
     android:startOffset="160" 
     android:fromXDelta="-7" 
     android:toXDelta="4" 
     android:duration="20" /> 
    <translate 
     android:startOffset="200" 
     android:fromXDelta="4" 
     android:toXDelta="0" 
     android:duration="20" /> 
    <translate 
     android:startOffset="220" 
     android:fromXDelta="0" 
     android:toXDelta="0" 
     android:duration="20" /> 
</set> 
+0

Và làm cách nào để áp dụng điều này cho hình ảnh? Không có nhiều lời giải thích ở đây ... –

Các vấn đề liên quan