показать несколько изображений анимации - PullRequest
3 голосов
/ 25 июля 2011

Я хочу показать фоновое изображение и несколько изображений, движущихся вниз, как сцена «снегопада», так как я могу это сделать? Фоновое изображение не должно двигаться, только маленькие изображения поверх него должны падать. Как я могу это сделать????

Обновление -> Я отобразил изображения на экране, но все они появляются одновременно, но я хочу показать изображения, приходящие в разное время, как я могу это сделать? Эй, пожалуйста, предложите какой-нибудь способ.это правильный путь или если нет, пожалуйста, предложите мне правильный путь ....

Вот мой код:

public class AnimationActivity extends Activity implements AnimationListener 
{
    /** Called when the activity is first created. */

    LinearLayout layout;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Animation movement;
        layout = (LinearLayout) findViewById(R.id.linearLayout_ani);
        movement = AnimationUtils.loadAnimation(this,R.layout.abc);
        movement.reset();
        movement.setFillAfter(true);
        movement.setAnimationListener(this);
        movement.setRepeatCount(1);
        movement.setRepeatMode(7);

        layout.startAnimation(movement);            

    }
    @Override 
    public void onAnimationEnd(Animation movement) 
    {
        // TODO Auto-generated method stub      
    }
    @Override
    public void onAnimationRepeat(Animation arg0) 
    {
        // TODO Auto-generated method stub

    }
    @Override
    public void onAnimationStart(Animation arg0) 
    {
    }
}

Вот файл макета анимации:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0%"
    android:toXDelta="50%"
    android:fromYDelta="0%"
    android:toYDelta="95%" 
    android:duration="10000" 
    android:zAdjustment="normal" />

основной файл .xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/linearLayout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical"
     android:background="@drawable/wall">

    <LinearLayout android:id="@+id/linearLayout_ani"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="horizontal" 
     >   
    <ImageView android:id="@+id/snowimg1" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       ></ImageView>
       <ImageView android:id="@+id/snowimg2" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       ></ImageView>
       <ImageView android:id="@+id/snowimg3" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       ></ImageView>
       <ImageView android:id="@+id/snowimg4" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       ></ImageView>
       <ImageView android:id="@+id/snowimg5" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       ></ImageView>
       <ImageView android:id="@+id/snowimg6" 
       android:layout_width ="wrap_content"
       android:layout_height ="wrap_content"
       android:visibility="visible" 
       android:background="@drawable/snow1"
       >
    </ImageView>
    </LinearLayout> 

</LinearLayout>    

1 Ответ

3 голосов
/ 25 июля 2011

Вы можете добавить аниматор для всех изображений, как это:

private final int REPEAT_COUNT = 1;
private final int REPEAT_MODE = 7;

private void startAnimations() {
    // Using the ImageView not the layout.
    ImageView snowImg1 = (ImageView) findViewById(R.id.snowimg1);
    ImageView snowImg2 = (ImageView) findViewById(R.id.snowimg2);
    ImageView snowImg3 = (ImageView) findViewById(R.id.snowimg3);
    ImageView snowImg4 = (ImageView) findViewById(R.id.snowimg4);
    ImageView snowImg5 = (ImageView) findViewById(R.id.snowimg5);
    ImageView snowImg6 = (ImageView) findViewById(R.id.snowimg6);

    ImageView snowArray[] = {snowImg1, snowImg2, snowImg3, snowImg4, snowImg5, snowImg6};

    // If it is not the same movement, you will need to create different layouts
    Animation snowMov1 = AnimationUtils.loadAnimation(this, R.layout.snowimg1);
    Animation snowMov2 = AnimationUtils.loadAnimation(this, R.layout.snowimg2);
    Animation snowMov3 = AnimationUtils.loadAnimation(this, R.layout.snowimg3);
    Animation snowMov4 = AnimationUtils.loadAnimation(this, R.layout.snowimg4);
    Animation snowMov5 = AnimationUtils.loadAnimation(this, R.layout.snowimg5);
    Animation snowMov6 = AnimationUtils.loadAnimation(this, R.layout.snowimg6);

    Animation movArray[] = {snowMov1, snowMov2, snowMov3, snowMov4, snowMov5, snowMov6};

    // Start the movement animation.
    startMovement(snowArray, movArray);
}

private void startMovement(ImageView imgArray[], Animation movArray[]) {
    // Same length so there is no problem...
    int length = imgArray.length;
    for(int i = 0; i < length; i++) {
        movArray[i].reset();
        movArray[i].setFillAfter(true);
        movArray[i].setAnimationListener(this);
        movArray[i].setRepeatCount(REPEAT_COUNT);
        movArray[i].setRepeatMode(REPEAT_MODE);

        // Start the animation
        imgArray[i].startAnimation(movArray[i]);
    }
}

Вам нужно будет делать случайные движения в файле анимации, это не было проверено, поэтому я не уверен, работает ли это ... Надеюсь, это поможет, по крайней мере, я пытался.

EDIT:

Не будь нетерпеливым, помощь скоро придет, если мой подход не сработает !, тебе просто нужно подождать, парень ...

...