آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

متحرک سازی Logo مشابه App Facebook

iSheykhi  12 سال پیش  12 سال پیش
0 0

با سلام

یک Logo دارم که درون LinearLayout قرار داره

برای جابجایی اون، کد زیر رو توی یک فایل xml درون شاخه anim ریختم

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100" >

<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromAlpha="0"
android:interpolator="@android:anim/accelerate_interpolator"
android:repeatCount="0"
android:toAlpha="1" >
</alpha>

<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fillAfter="true"
android:fromYDelta="40%p"
android:interpolator="@android:anim/accelerate_interpolator"
android:repeatCount="0"
android:toYDelta="0%p" >

</translate>

</set>

و در هنگام لود شدن بهش می گم که این انیمیشن رو به LinearLayout بده

حتی از تایمر هم استفاده کردم اما به جای اینکه از مکان A به مکان B بره، مستقیما در مکان B ضاهر می شه

         new CountDownTimer(1000, 100) {

@Override
public void onTick(long arg0) {

}


@Override
public void onFinish() {

// کد رو در این قسمت وارد کردم
}
}.start();

اما اگر مقایسه کنید همونطور که می بینید تصویر Logo ، مکث ابتدایی نداره

دوستانی که به موشن کردن تسلط دارن می تونن کمک کن؟

0 0
از این لینک استفاده کن + onTick رو بجای onFinish نیاز داری (12 سال پیش)
0 0
باز هم ممنون اما onTick واسه اینه که در زمان اجرا و در حین Count کردن کد اجرا بشه، از تایمر برای حرکت استفاده نمی کنم، از اون برای -به تاخیر انداختن زمان استفاده می کنم (12 سال پیش)
0 0
"اما به جای اینکه از مکان A به مکان B بره، مستقیما در مکان B ضاهر می شه" از صورت سوال برداشت درستی نمیشه داشت. مشکل تو حرکته یا تو وفقه قبلش؟ (12 سال پیش)
0 0
حرکت که توی فایل xml هست که در شاخه anim قرار داره، اما وقتی متد runAnimation رو می ذارم توی تایمر جواب نمی ده و بجای اینکه حرکت موشن وار داشته با8شه فقط یک پرش کلی داره (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+2 0

با برداشت من از سوال این میتونه درست باشه. متغیر ها طبق سوالای قبلیت فرض شدن

 private void setCommand() {

if (!animationIsPlayed) {

runAnimation();
}

setMargins...
}


private void runAnimation() {

Animation animation = AnimationUtils.loadAnimation(...);

logo.setAnimation(animation);

animationIsPlayed = true;

handler.postDelayed(new Runnable() {
@Override
public void run() {

//نمایش پنل ها

}
}, 1300);
}

یعنی کلا نیازی به CountDownTimer نداری . اگر هم فقط قصد اجرای کاری رو بعد از اجرای انیمیشن داری که از setAnimationListener خود انیمیشن میتونی استفاده کنی


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .