PDA

View Full Version : fade کردن به ترتیب button ها؟



gilas1368
دوشنبه 18 اسفند 1393, 19:20 عصر
سلام به تمام دوستان و اساتید محترم
من چندتا button دارم ک میخوام زمانیکه یکی از اونها کلیک شد
بقیه با انیمیشن به صورت fade و به ترتیب محو بشن

مثلا کاربر دکمه 5 رو زده، میخوام اول 4 محو بشه، 4 که محو شد بعد 3 محو بشه، 3 ک محو شد بعد 2 محو بشه تا آخر
بعد هم اکتیویتی مربوط به دکمه 5 باز بشه

میدونم چطوری buttonها رو با انیمیشن به صورت fade محو کنم اما مشکلم اینجاست که همه با هم fade میشن چطور میتونم ترتیبی که بالا گفتم رو پیاده سازی کنم؟:متفکر:

پیشاپیش بابت راهنمائی هاتون ممنونم

#root#
دوشنبه 18 اسفند 1393, 19:41 عصر
سلام،

انیمیشن ها یه Listener دارن که توش متدی هست که وقتی انیمیشن تموم شد صدا زده میشه، اونجا میتونید انیمیشن بعدی رو اجرا کنید،

با Handler هم فکر کنم بشه انجام داد (postDelayed).

gilas1368
دوشنبه 18 اسفند 1393, 19:44 عصر
سلام،

انیمیشن ها یه Listener دارن که توش متدی هست که وقتی انیمیشن تموم شد صدا زده میشه، اونجا میتونید انیمیشن بعدی رو اجرا کنید،

با Handler هم فکر کنم بشه انجام داد (postDelayed).

با Handler میخوام انجام بدم
اما نمیدونم چطوری میشه

راستی من برای fade کردن از این کد استفاده میکنم:


<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="500" />
</set>

ممنون میشم کمکم کنید

roboman78
دوشنبه 18 اسفند 1393, 21:56 عصر
اگه میخوای به یه ترتیب بشه مثلا از یک شروع بشه تو آنکلیک یک بنویس Animation animFadeOut = AnimationUtils.loadAnimation(getApplicationContext (), android.R.anim.fade_out); Animation animFadeIn = AnimationUtils.loadAnimation(getApplicationContext (), android.R.anim.fade_in);
myButton.setAnimation(animFadeOut)

myButton.setVisibility(View.GONE);

و برای باتن های دیگه به همین ترتیب

اطلاعات بیشتر (http://stackoverflow.com/questions/7173890/how-to-animate-setvisibility-for-an-imagebutton-on-android)

esideli
دوشنبه 18 اسفند 1393, 22:41 عصر
شما باید یه مقدار برای خاصیت startoffset توی فایل جاوا به میلی ثانیه تعین کنیی. با این کار شروع انیمیشن عقب میفته. البته برای هر دکمه باید یه انیمیشن جدا تعریف کنی (توی فایل جاوا) و به ترتیب مقدار startoffset رو افزایش بدی.

gilas1368
دوشنبه 18 اسفند 1393, 23:22 عصر
شما باید یه مقدار برای خاصیت startoffset توی فایل جاوا به میلی ثانیه تعین کنیی. با این کار شروع انیمیشن عقب میفته. البته برای هر دکمه باید یه انیمیشن جدا تعریف کنی (توی فایل جاوا) و به ترتیب مقدار startoffset رو افزایش بدی.



میشه خواهش کنم ازتون اگ نمونه ای دارید بذارید

atpf67
سه شنبه 19 اسفند 1393, 03:22 صبح
سلام بزرگواران
برای این کار باید از AnimationListener کمک بگیرید.

atpf67
سه شنبه 19 اسفند 1393, 03:25 صبح
سلام به تمام دوستان و اساتید محترم
من چندتا button دارم ک میخوام زمانیکه یکی از اونها کلیک شد
بقیه با انیمیشن به صورت fade و به ترتیب محو بشن

مثلا کاربر دکمه 5 رو زده، میخوام اول 4 محو بشه، 4 که محو شد بعد 3 محو بشه، 3 ک محو شد بعد 2 محو بشه تا آخر
بعد هم اکتیویتی مربوط به دکمه 5 باز بشه

میدونم چطوری buttonها رو با انیمیشن به صورت fade محو کنم اما مشکلم اینجاست که همه با هم fade میشن چطور میتونم ترتیبی که بالا گفتم رو پیاده سازی کنم؟:متفکر:

پیشاپیش بابت راهنمائی هاتون ممنونم


سلام

با کسب اجازه از محضر اساتید بزرگوار

به صورت زیر عمل کنید:

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener ;
import android.view.animation.AnimationUtils;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {

List<Button> buttons;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


((Button) findViewById(R.id.button1)).setOnClickListener(lis tener);
((Button) findViewById(R.id.button2)).setOnClickListener(lis tener);
((Button) findViewById(R.id.button3)).setOnClickListener(lis tener);
((Button) findViewById(R.id.button4)).setOnClickListener(lis tener);
}


private void animate(){
final Button button = buttons.get(0);
Animation animFadeOut = AnimationUtils.loadAnimation(getApplicationContext (), android.R.anim.fade_out);
animFadeOut.setDuration(200);
animFadeOut.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationRepeat(Animation animation) {

}

@Override
public void onAnimationEnd(Animation animation) {
button.setVisibility(View.INVISIBLE);
buttons.remove(button);
if(buttons.size() != 0){
animate();
}else{
//عمل مورد نظر
}
}
});
button.setAnimation(animFadeOut);
}

OnClickListener listener = new OnClickListener() {

@Override
public void onClick(View v) {
buttons = new ArrayList<Button>();
buttons.add((Button) findViewById(R.id.button1));
buttons.add((Button) findViewById(R.id.button2));
buttons.add((Button) findViewById(R.id.button3));
buttons.add((Button) findViewById(R.id.button4));
animate();
}
};

}