Здравствуйте. Я пытаюсь создать анимацию, подобную
, создавая пузыри в форме сердца, но не на 100%, как это. Это может на некоторой статической активности.
Но я не где. В документации отсутствуют примеры, а примеры в API просто недопустимы. Сделать такую анимацию не должно быть так сложно.
Я вставляю свой код, пожалуйста, помогите мне.
Файл класса
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class AnimationTest extends Activity {
AnimationDrawable animation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnStart = (Button) findViewById(R.id.btnStart);
final ImageView imgView = (ImageView) findViewById(R.id.img);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startAnimation();
}
});
imgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
class Starter implements Runnable {
public void run() {
animation.start();
}
}
private void startAnimation() {
animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.one), 100);
animation.addFrame(getResources().getDrawable(R.drawable.two), 100);
animation.addFrame(getResources().getDrawable(R.drawable.three), 100);
animation.addFrame(getResources().getDrawable(R.drawable.four), 100);
animation.addFrame(getResources().getDrawable(R.drawable.five), 100);
animation.addFrame(getResources().getDrawable(R.drawable.six), 100);
animation.addFrame(getResources().getDrawable(R.drawable.seven), 100);
animation.addFrame(getResources().getDrawable(R.drawable.eight), 100);
animation.setOneShot(false);
ImageView imageView = (ImageView) findViewById(R.id.img);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 90);
params.alignWithParent = true;
params.addRule(RelativeLayout.CENTER_IN_PARENT);
imageView.setLayoutParams(params);
imageView.setImageDrawable(animation);
imageView.post(new Starter());
}
}
XML-файл
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Frame by Frame Animation Example"
android:gravity="center" />
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center_horizontal">
<ImageView android:id="@+id/img" android:layout_width="80px"
android:layout_height="90px" android:layout_centerInParent="true" />
<Button android:id="@+id/btnStart" android:text="Start Animation"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
</RelativeLayout>
</LinearLayout>
Изображения, вы также можете вставить некоторые другие изображения
1 2 4 * * тысяча двадцать-два
EDIT
Чего я хочу достичь
шаг1: рыба идет с левой стороны
setp2: рыба идет с правой стороны
step3: в самом центре обеих рыб появляется и увеличивается сердце
step4: тогда маленькие сердца разлетаются и исчезают