Android用动画交换两个图像

时间:2012-01-04 13:12:56

标签: android image swap

首先抱歉我的语法。

我有两个ImageViews,我想互相交换图像。我知道我可以使用setImageDrawablesetImageBitmap方法来更改图像,但这并不是我想要的。我想要的是图像应该互相改变它们的位置。我的意思是幻灯片动画。

我该怎么办?我可以继续使用ImageView吗?

例如我有一个谜题 http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/15-puzzle.svg/220px-15-puzzle.svg.png

想象一下,空区域中有16个,我希望用16交换12。

3 个答案:

答案 0 :(得分:2)

如果基于用户要做的手势,this question可以帮助您。

要处理动画,this tutorial可以提供帮助,您将专注于使用ViewFlipper。这适用于各种组件甚至布局。

此外,我发现this link演示了使用带有ImageViews和幻灯片动画的ViewFlipper。

希望这有帮助!

答案 1 :(得分:0)

这可能会对您有所帮助:

  

Canvas and Drawables

     

Android框架API提供了一组2D绘图API,允许您将自己的自定义图形渲染到画布上或修改现有视图以自定义其外观。绘制2D图形时,通常会采用以下两种方式之一:

     
      
  1. 将图形或动画绘制到布局中的View对象中。通过这种方式,您的图形绘制由系统的常规视图层次结构绘制过程处理 - 您只需将图形定义到视图内。
  2.   
  3. 将图形直接绘制到Canvas。这样,您亲自调用相应类的onDraw()方法(将其传递给Canvas)或Canvas draw...()方法之一(如drawPicture())。这样做,您也可以控制任何动画。
  4.   

答案 2 :(得分:0)

您可以使用Button然后应用动画。

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/btn1"
android:text="Button 1"
android:layout_width="fill_parent" 
android:layout_height="45dip" 
android:layout_marginTop="10dip"
/>

<Button
android:id="@+id/btn2"
android:text="Button 2"
android:layout_width="fill_parent" 
android:layout_height="45dip"
android:layout_marginTop="10dip" />

<Button
android:id="@+id/btn3"
android:text="Button 3"
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dip"
/>

<Button
android:id="@+id/btn4"
android:text="Button 4"
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="10dip"
/>
</LinearLayout>

您的活动

  import android.app.Activity;
  import android.os.Bundle;
  import android.view.animation.Animation;
  import android.view.animation.TranslateAnimation;
  import android.widget.Button;

  public class LayoutMargingActivity extends Activity 
  {
Button b1, b2, b3, b4;

TranslateAnimation left, right;
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    left = new TranslateAnimation(-480, 10, 0, 10);
    right= new TranslateAnimation( 480, 10, 0, 10);

    left.setDuration(2000);
    right.setDuration(2000);

    left.setRepeatCount( 1 );
    right.setRepeatCount( 1 );

    b1 =(Button)findViewById( R.id.btn1);
    b2 =(Button)findViewById( R.id.btn2);
    b3 =(Button)findViewById( R.id.btn3);
    b4 =(Button)findViewById( R.id.btn4);

    b1.startAnimation(left);
    b2.startAnimation(right);
    b3.startAnimation(left);
    b4.startAnimation(right);
}
}

我认为这会对你有帮助。