تغییر ارتفاع view با انیمیشن در اندروید

تغییر ارتفاع view با انیمیشن در اندروید
سلام دوستان گرامی در این آموزش به تغییر ارتفاع view با انیمیشن در اندروید شاید خواسته باشید اندازه یا ارتفاع LinearLayout یا لایه ها یا حتی view های دیگر رو تغییر بدید و در واقع عملیات expand ,collapse انجام بدید اگر بخواهید این رو با انیمیشن انجام بدید یکم مشکل داره توی اندروید های مختلف شاید به درستی انجام نشه در ادامه یک کلاس Util خیلی ساده به شما معرفی می کنیم که خیلی ساده می تواند این کار رو برای شما انجام دهید دیگه نیازی نیست کلی کد بنویسید ?
این آموزش برای view های مختلف کاربرد داره من یه لیست درست می کنم در زیر تا دوستان اگر با واژه های مختلف سرچ کردن پیدا کنن
- تغییر ارتفاع شئی با انیمیشن در اندروید
- تغییر ارتفاع لایه با انیمیشن در اندروید
- تغییر ارتفاع دکمه با انیمیشن در اندروید
- تغییر ارتفاع RelativeLayout با انیمیشن در اندروید
شاید بد نباشه پیش نمایشش رو ببینیم

public static void slideView(View view, int currentHeight, int newHeight) { ValueAnimator slideAnimator = ValueAnimator .ofInt(currentHeight, newHeight) .setDuration(500); slideAnimator.addUpdateListener(animation1 -> { Integer value = (Integer) animation1.getAnimatedValue(); view.getLayoutParams().height = value.intValue(); view.requestLayout(); }); AnimatorSet animationSet = new AnimatorSet(); animationSet.setInterpolator(new AccelerateDecelerateInterpolator()); animationSet.play(slideAnimator); animationSet.start() }
در بالا من از لامبدا استفاده کردم می تونید به راحتی حذفش کنید و از کد default اندروید استودیو استفاده کنید. حالا چه جوری از این استفاده کنید ؟
به عنوان مثال می خواهیم اول عمل بستن یا collapse رو انجام بدیم برای اینکار کافی از کد زیر استفاده کنید.
slideView(view, view.getLayoutParams().height, 1);
حالا می خواهیم عمل باز کردن یا expand رو انجام بدیم کافیه اندازه که می خواهیم اون view باز شود را ست کنیم
slideView(view, view.getLayoutParams().height, 200);
در بالا هر نوع view شما می تونید قرار بدید ! و انیمیشن به صورت پیشفرض بروی ۵۰۰ ست شده حالا خواستید بکنیدش ۱۰۰۰ میشه یک ثانیه البته الان خیلی light به نظر میرسه.
موفق و پیروز باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.