بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
متحرک سازی Logo مشابه App Facebook
با سلام
یک 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 خود انیمیشن میتونی استفاده کنی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .