Back to Question Center
0

ການເຄື່ອນໄຫວເປັນປຸ່ມ Android Action Floating            ການເຄື່ອນໄຫວປຸ່ມ Android ການປະຕິບັດທີ່ລອຍຕົວຫົວຂໍ້ຕໍ່ໄປນີ້: Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

1 answers:
Animating ປຸ່ມ Android Action Floating

ນັບຕັ້ງແຕ່ການອອກແບບວັດຖຸຖືກນໍາສະເຫນີ, ການປະຕິບັດການປະຕິບັດການເລື່ອນລອຍ (FAB) ໄດ້ກາຍເປັນຫນຶ່ງໃນອົງປະກອບທີ່ງ່າຍທີ່ສຸດທີ່ຈະປະຕິບັດ, ກາຍເປັນຄວາມຕ້ອງການທີ່ລວດໄວແລະມີຄວາມຈໍາເປັນໃນການອອກແບບແລະນັກພັດທະນາ.

ໃນບົດຮຽນນີ້ຂ້າພະເຈົ້າຈະສະແດງໃຫ້ທ່ານຮູ້ວິທີເຮັດໃຫ້ແອັບຯ FAB ໂຕ້ຕອບແລະວິທີການສ້າງພາບເຄື່ອນໄຫວຂອງທ່ານເອງ. ແຕ່ໃຫ້ເລີ່ມຕົ້ນງ່າຍດາຍ, ເພີ່ມປຸ່ມປະຕິບັດການລອຍກັບໂຄງການ Semalt.

ປຸ່ມປະຕິບັດການລອຍມີລັກສະນະເຊັ່ນນີ້ໃນໄຟລ໌ຮູບແບບແລະຈະຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດຖ້າສ້າງໂຄງການ Android Studio ດ້ວຍ ກິດຈະກໍາຫວ່າງເປົ່າ :

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

         

ປຸ່ມປະຕິບັດການລອຍ

ປຸ່ມການກະທໍາທີ່ລອຍຕົວສາມາດເປັນຫນຶ່ງໃນສອງຂະຫນາດ - liquid ejector. ຄ່າເລີ່ມຕົ້ນ (56dp) ແລະ mini (40dp). ສໍາລັບການປຶກສາຫາລືຕື່ມກ່ຽວກັບຫຼັກການອອກແບບຂອງການນໍາໃຊ້ FAB, ຂ້າພະເຈົ້າແນະນໍາໃຫ້ທ່ານອ່ານຄໍາແນະນໍາຢ່າງເປັນທາງການຂອງ Semalt.

ໃນແອັບພລິເຄຊັນ Semalt ຫຼ້າສຸດ, FAB ປະຕິບັດກັບການເລື່ອນພາບຂອງລາຍຊື່ຂອງອົງປະກອບແລະໃນຄວາມຄິດເຫັນຂອງຂ້ອຍຄວນຈະຖືກປິດບັງໃນຂະນະທີ່ເລື່ອນພາບ. ນີ້ແມ່ນສິ່ງທີ່ຂ້າພະເຈົ້າຫມາຍຄວາມວ່າ:

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ເພື່ອສະແດງພາບເຄື່ອນໄຫວນີ້ຂ້າພະເຈົ້າໄດ້ສ້າງ recycleView ເພື່ອ FAB ສາມາດປະຕິບັດໃນການເລື່ອນພາບ.

Semalt ມີຫຼາຍຫ້ອງສະຫມຸດທີ່ສາມາດບັນລຸເປົ້າຫມາຍນີ້ໃນລະຫັດ 1 ຫຼື 2 ລະຫັດແຕ່ສໍາລັບຜູ້ທີ່ຢາກຮຽນຮູ້, ນີ້ແມ່ນຕົວຢ່າງ:

     ຊັ້ນສາທາລະນະ FAB_Hide_on_Scroll extends FloatingActionButton. Behavior {public FAB_Hide_on_Scroll (context context, AttributeSet attrs) {super   }@Overridepublic void onNestedScroll (CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {super onNestedScroll (coordinatorLayout, ລູກ, ເປົ້າຫມາຍ, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);// child -> ປຸ່ມປະຕິບັດການລອຍຖ້າ (ເດັກໄດ້ຮັບການເບິ່ງເຫັນ    == ເບິ່ງ VISIBLE && dyConsumed> 0) {ເດັກນ້ອຍ. hide   } else if (child getVisibility    == View GONE & & dyConsumed <0) {ເດັກນ້ອຍ. show   }}@Overridepublic boolean onStartNestedScroll (CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {return nestedScrollAxes == ViewCompat SCROLL_AXIS_VERTICAL}}    

ຂ້ອຍໃຊ້ FloatingActionButton. ປະເພດ Behavior ເຊິ່ງອີງຕາມເອກະສານທີ່ເປັນທາງການ, ຫນ້າທີ່ຕົ້ນຕໍຂອງມັນແມ່ນການເຄື່ອນຍ້າຍ FloatingActionButton ເພື່ອສະແດງໃຫ້ເຫັນວ່າ Snackbars ບໍ່ໄດ້ກວມເອົາພວກເຂົາ. ແຕ່ໃນກໍລະນີຂອງພວກເຮົາຫ້ອງຮຽນນີ້ໄດ້ຂະຫຍາຍໄປເພື່ອພວກເຮົາສາມາດປະຕິບັດພຶດຕິກໍາຕົວເອງໄດ້.

ຂໍໃຫ້ເຂົ້າໄປໃນລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຫ້ອງຮຽນການປະພຶດນີ້. ຈຸດປະສົງຂອງມັນແມ່ນວ່າທຸກຄັ້ງທີ່ເລື່ອນພາບຈະເລີ່ມຕົ້ນ, ວິທີການ onStartNestedScroll ຈະກັບຄືນ true ຖ້າເລື່ອນເປັນແນວຕັ້ງແລະຈາກນັ້ນ onNestedScroll method will ຊ່ອນຫຼືສະແດງປຸ່ມປະຕິບັດການລອຍ, ຂຶ້ນຢູ່ກັບສະຖານະການເບິ່ງເຫັນໃນປະຈຸບັນ.

ຕົວສ້າງຂອງຊັ້ນນີ້ແມ່ນສ່ວນຫນຶ່ງທີ່ສໍາຄັນຂອງພຶດຕິກໍາຂອງພາບນີ້, ເຮັດໃຫ້ອັດຕາເງິນເຟີ້ນີ້ມາຈາກໄຟລ໌ XML

     public FAB_Hide_on_Scroll (Context context, AttributeSet attrs) {super   }    

ເພື່ອນໍາໃຊ້ພຶດຕິກໍານີ້, ໃຫ້ໃສ່ attribute layout_behavior ກັບປຸ່ມປະຕິບັດການລອຍ. ໃນກໍລະນີຂອງຂ້ອຍມັນຄືກັບ:

     app: layout_behavior = "com valdio valdioveliu floatingactionbuttonproject Scrolling_Floating_Action_Button FAB_Hide_on_Scroll"    

ພາບເຄື່ອນໄຫວນີ້ເບິ່ງດີ, ແຕ່ມັນອາດຈະດີກວ່າ. ຂ້າພະເຈົ້າສ່ວນບຸກຄົນມັກ floating FAB ອອກຈາກຫນ້າຈໍໃນຂະນະທີ່ຂ້າພະເຈົ້າເລື່ອນຂໍ້ມູນເນື້ອຫາກິດ, ມັນເປັນຈິງຫຼາຍ. ສິ່ງທີ່ຂ້ອຍຫມາຍຄວາມວ່າ:

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ຕາມເຫດຜົນດຽວກັນກ່ອນຫນ້ານີ້ຖືກນໍາໃຊ້, ພຽງແຕ່ວິທີທີ່ FAB ເຊື່ອງການປ່ຽນແປງ.

ພາບເຄື່ອນໄຫວແມ່ນງ່າຍດາຍ. FAB floats off screen vertically using Semalt. FAB ເລື່ອນໄລຍະຫ່າງລົງທີ່ຖືກຄິດໄລ່ໂດຍຄວາມສູງຂອງມັນບວກກັບຂອບຂອບລຸ່ມເພື່ອເອົາມັນອອກຈາກຫນ້າຈໍແລະຈະເລື່ອນລົງກັບຕໍາແຫນ່ງຕົ້ນສະບັບໃນເລື່ອນຂຶ້ນ.

ຖ້າທ່ານເບິ່ງຮູບທີ່ໃກ້ຊິດ, ຂ້າພະເຈົ້າໄດ້ລຶບ ເບິ່ງ. ວີດີໂອ ແລະ ເບິ່ງ. GONE ກວດສອບໃນ ຖ້າ ຄໍາສັ່ງເນື່ອງຈາກວ່າມຸມເບິ່ງບໍ່ຊ່ອນຢູ່ໃນກໍລະນີນີ້, ພຽງແຕ່ floats off screen.

     ຊັ້ນສາທາລະນະ FAB_Float_on_Scroll extends FloatingActionButton. Behavior {public FAB_Float_on_Scroll (context context, AttributeSet attrs) {super   }@Overridepublic void onNestedScroll (CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {super onNestedScroll (coordinatorLayout, ລູກ, ເປົ້າຫມາຍ, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);// child -> ປຸ່ມປະຕິບັດການລອຍຖ້າ (dyConsumed> 0) {CoordinatorLayout. LayoutParams layoutParams = (CoordinatorLayout LayoutParams) child getLayoutParams   int fab_bottomMargin = layoutParams bottomMarginເດັກນ້ອຍ. animate    translationY (ເດັກ getHeight    + fab_bottomMargin) setInterpolator (new LinearInterpolator   ) ເລີ່ມຕົ້ນ   ;} else if (dyConsumed <0) {ເດັກນ້ອຍ. animate    translationY    setInterpolator (new LinearInterpolator   ) ເລີ່ມຕົ້ນ   ;}}@Overridepublic boolean onStartNestedScroll (CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {return nestedScrollAxes == ViewCompat SCROLL_AXIS_VERTICAL}}    

ການສ້າງເມນູຂອງປຸ່ມປະຕິບັດການລອຍ

ຂ້າພະເຈົ້າໄດ້ເຫັນກິດ Android ຫຼາຍຢ່າງທີ່ເຮັດໃຫ້ເມນູເລື່ອນປະຕິບັດງານປະທັບໃຈທີ່ຫນ້າສົນໃຈທີ່ເບິ່ງແລະເຮັດວຽກໄດ້ດີ. ນີ້ແມ່ນຕົວຢ່າງ:

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ຕອນນີ້ທ່ານມີຄວາມຄິດກ່ຽວກັບສິ່ງທີ່ພວກເຮົາກໍາລັງເຮັດ, ເລີ່ມຕົ້ນການກໍ່ສ້າງ.

ຂັ້ນຕອນທໍາອິດໃນການສ້າງເມນູນີ້ແມ່ນຮູບແບບທີ່ມີ 3 ປຸ່ມນ້ອຍໆ.

ທັງຫມົດປຸ່ມນ້ອຍໆແມ່ນບໍ່ເບິ່ງເຫັນແລະຕັ້ງຢູ່ດ້ານລຸ່ມຂອງຮູບຮ່າງ, ພາຍໃຕ້ FAB ຕົ້ນຕໍ.

ພາຍໃນ fab_layout. xml

       
         

ໃນປັດຈຸບັນວ່າຮູບຮ່າງຖືກກໍານົດ, ຂັ້ນຕອນຕໍ່ໄປແມ່ນເຮັດໃຫ້ພາບເຄື່ອນໄຫວສະແດງແລະເຊື່ອງແຕ່ລະ FABs ຂະຫນາດນ້ອຍ.

ຄໍາເຕືອນ!

Semalt ສ້າງພາບເຄື່ອນໄຫວເຫຼົ່ານີ້ຂ້າພະເຈົ້າໄດ້ພົບບັນຫາກ່ຽວກັບເຫດການສໍາຜັດແລະ FABs ຂະຫນາດນ້ອຍ. ເມື່ອພາບເຄື່ອນໄຫວສໍາເລັດແລ້ວຕໍາແຫນ່ງຂອງ FABs ຂະຫນາດນ້ອຍບໍ່ປ່ຽນແປງ, ພຽງແຕ່ເບິ່ງຢູ່ໃນຕໍາແຫນ່ງໃຫມ່ດັ່ງນັ້ນທ່ານຈຶ່ງບໍ່ສາມາດປະຕິບັດກິດຈະກໍາສໍາພັດໃນສະຖານທີ່ທີ່ຖືກຕ້ອງ. ສິ່ງທີ່ຂ້ອຍແກ້ໄຂບັນຫານີ້ແມ່ນເພື່ອກໍານົດຕົວກໍານົດການຮູບແບບຂອງແຕ່ລະ FAB ກັບສະຖານທີ່ໃຫມ່ຂອງມັນແລະຫຼັງຈາກນັ້ນປະຕິບັດການເຄື່ອນໄຫວຂອງການດຶງທັດສະນະໄປຫາຕໍາແຫນ່ງໃຫມ່.

ໃນສ່ວນທີ່ເຫຼືອຂອງບົດຮຽນນີ້ຂ້າພະເຈົ້າຈະສະແດງໃຫ້ເຫັນເຖິງຂະບວນການຂອງ animate ຫນຶ່ງຂອງ FABs ຂະຫນາດນ້ອຍ. ຂະບວນການແມ່ນຄືກັນກັບຄົນອື່ນແຕ່ມີຕົວກໍານົດການປ່ຽນແປງໃຫມ່.

ສະແດງເມນູປຸ່ມປະຕິບັດການລອຍຕົວ

     FrameLayout LayoutParams layoutParams = (FrameLayout LayoutParams) fab1 getLayoutParams   layoutParams rightMargin + = (int) (fab1 getWidth    * 1 7)layoutParams bottomMargin + = (int) (fab1 getHeight    * 0 25)fab1 setLayoutParams (layoutParams)fab1 startAnimation (show_fab_1)fab1 setClickable (true)    

ທີ່ນີ້ຂ້າພະເຈົ້າຍ້າຍອອກໃຫມ່ fab1 ໂດຍການເພີ່ມຂອບຂວາແລະລຸ່ມເພື່ອຮູບແບບຂອງມັນ layoutParams ແລະເລີ່ມ animation.

ຊ່ອນເມນູປຸ່ມປະຕິບັດການລອຍຕົວ

     FrameLayout LayoutParams layoutParams = (FrameLayout LayoutParams) fab1 getLayoutParams   layoutParams rightMargin - = (int) (fab1 getWidth    * 1 7)layoutParams bottomMargin - = (int) (fab1 getHeight    * 0 25)fab1 setLayoutParams (layoutParams)fab1 startAnimation (hide_fab_1)fab1 setClickable (false)    

ຂະບວນການຊ່ອນຢູ່ແມ່ນການປ່ຽນແປງຂອງພາບເຄື່ອນໄຫວກ່ອນຫນ້ານີ້.

ສັດທີ່ໃຊ້ໃນ FAB ນີ້ແມ່ນ:

     // Animationsພາບເຄື່ອນໄຫວ show_fab_1 = AnimationUtils. loadAnimation (getApplication   , R anim fab1_show)ພາບເຄື່ອນໄຫວ hide_fab_1 = AnimationUtils. loadAnimation (getApplication   , R anim fab1_hide)    

ໃນປັດຈຸບັນທັງຫມົດທີ່ຍັງຄົງແມ່ນສັດ. ພາຍໃນ res / anim / ໂຟເດີຂ້າພະເຈົ້າສ້າງໄຟລ໌ສໍາລັບສັດທັງຫມົດ. ບໍ່ມີສິ່ງເຫຼົ່ານີ້ຫຼາຍ, ແຕ່ຖ້າທ່ານຕ້ອງການຄວາມຊ່ວຍເຫຼືອໃນການເຂົ້າໃຈສິ່ງທີ່ແຕ່ລະໂຄສະນາຫຼືຄຸນລັກສະນະ, ອ່ານເອກະສານທີ່ເປັນທາງການ.

ພາຍໃນ fab1_show xml :

                        

ພາຍໃນ fab1_hide xml :

                           

Semalt, ຖ້າທ່ານເບິ່ງໂຄ້ດແປພາສາ, ຮັບຜິດຊອບສໍາລັບການເຄື່ອນຍ້າຍມຸມເບິ່ງ, ປັດໄຈທີ່ຂ້າພະເຈົ້າໄດ້ຍ້າຍຄືນ FAB (170% ແລະ 25%) ແມ່ນສອດຄ່ອງກັບປັດໃຈທີ່ມີຂອບໃບລຽບແລະຖືກລົບອອກໃນລະຫັດ java ທີ່ຢູ່

ຂະບວນການດຽວກັນນໍາໃຊ້ກັບທັງ FABs ອື່ນໆ, ແຕ່ມີປັດໄຈຍ້າຍໃຫມ່ (150% ແລະ 150%) fab2 ແລະ (25% ແລະ 170%) fab3 .

ໂຄງການສຸດທ້າຍຄື:

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ພາບເຄື່ອນໄຫວວົງໃຫມ່

ຖ້າທ່ານກໍາລັງເບິ່ງຫາການສ້າງພາບເຄື່ອນໄຫວພິເສດບາງຢ່າງທີ່ມີ FABs ທ່ານສາມາດໃຊ້ເບິ່ງຮູບພາບ ViewAnimationUtils ເພື່ອສະແດງໃຫ້ເຫັນພາບເຄື່ອນໄຫວໃນມຸມມອງ.

ສ່ວນທີ່ເຫຼືອຂອງບົດຄວາມນີ້ຈະເນັ້ນໃສ່ໂດຍສະເພາະໃນຫ້ອງຮຽນນີ້ແລະວິທີການສ້າງການສະແດງພາບເຄື່ອນໄຫວກັບມັນ. Semalt, ຊັ້ນນີ້ມີພຽງແຕ່ສໍາລັບ API API 21 (LOLLIPOP) ແລະສູງກວ່າ.

ສ້າງກິດຈະກໍາໃຫມ່

ນັບຕັ້ງແຕ່ສ່ວນທີ່ເຫຼືອຂອງຕົວຢ່າງລະຫັດຂອງບົດຄວາມນີ້ຖືກແຍກອອກຈາກຕົວຢ່າງທີ່ຜ່ານມາຂ້ອຍໃຊ້ກິດຈະກໍາໃຫມ່. ຖ້າທ່ານຕັດສິນໃຈປະຕິບັດຕາມ, ໃຫ້ສ້າງກິດຈະກໍາໃຫມ່ທີ່ມີຊື່ວ່າ RevealActivity . ໃຫ້ແນ່ໃຈວ່າຮູບແບບການເຄື່ອນໄຫວຂອງກິດຈະກໍານີ້ມີປຸ່ມປະຕິບັດທີ່ເລື່ອນລອຍ, ດັ່ງທີ່ພວກເຮົາຈະນໍາໃຊ້ມັນເພື່ອສະແດງພາບເຄື່ອນໄຫວຂອງພວກເຮົາ. ໃນຕົວຢ່າງຂອງຂ້ອຍ, FAB ນີ້ມີ Android: id = "@ + id / fab" .

ສ້າງ UI ເປີດເຜີຍ

ເພື່ອເຮັດໃຫ້ມີການສະແດງພາບເຄື່ອນໄຫວໃນຮູບແບບທີ່ທ່ານຕ້ອງການຮູບແບບທີ່ຈະສະແດງໃຫ້ເຫັນຫຼັງຈາກພາບເຄື່ອນໄຫວໄດ້ຖືກປະຕິບັດ.

ຮູບແບບແມ່ນຂຶ້ນຢູ່ກັບສະແດງທີ່ທ່ານຕ້ອງການສະແດງໃນ app, ແຕ່ເພື່ອໃຫ້ມັນງ່າຍດາຍ, ຂ້ອຍໄດ້ສ້າງຮູບແບບຕົວຢ່າງໃຫ້ "animate-show".

ໃນໂຟເດີຮູບພາບສ້າງໄຟລ໌ໃຫມ່, fab_reveal_layout. xml ແລະໃສ່ລະຫັດດັ່ງຕໍ່ໄປນີ້.

           

ຕົວຈິງແລ້ວ, ບັນຈຸ LinearLayout ໃນໄຟລ໌ນີ້ມີຄວາມສາມາດເບິ່ງເຫັນ visibility = "gone" ດັ່ງນັ້ນບໍ່ມີຫຍັງຈະເຫັນໄດ້ເມື່ອທ່ານໃສ່ລະຫັດນີ້ໃນໄຟລ໌ຂອງທ່ານ. ເພື່ອເບິ່ງຮູບແບບນີ້, ລົບລັກສະນະການເບິ່ງເຫັນຈາກ LinearLayout ຫຼືເບິ່ງຮູບພາບຕໍ່ໄປນີ້.

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ການຢຸດເຊົາການສ້າງໄຟລ໌ນີ້, ໃຫ້ມັນຢູ່ໃນໄຟລ໌ຮູບແບບຂອງກິດຈະກໍາ.

activity_reveal xml

       // ທີ່ຢູ່ ທີ່ຢູ່     

ຕັ້ງຄ່າ RevealActivity

ຫຼັງຈາກທີ່ລວມເອົາຮູບແບບ fab ໃນຮູບແບບກິດຈະກໍາ, ພວກເຮົາຈໍາເປັນຕ້ອງຕິດຕັ້ງຮູບພາບເຄື່ອນໄຫວ CircularReveal .

ໃນແຖບ RevealActivity ສ້າງຈຸດປະສົງທົ່ວໄປຂອງ Floating Action Button boolean ເພື່ອຮັກສາສະຖານະພາບພາບເຄື່ອນໄຫວແລະຮູບແບບຂອງການອອກແບບ fab_reveal_layout ທີ່ຢູ່

     private LinearLayout fabContainerສ່ວນບຸກຄົນ FloatingActionButton fabprivate boolean fabMenuOpen = false    

ຕໍ່ໄປ, ໃນ RevealActivity onCreate ວິທີການຊອກຫາເອກະສານອ້າງ FAB ແລະເພີ່ມຜູ້ຟັງຄລິກ. ຂ້າພະເຈົ້າພຽງແຕ່ໄດ້ເລີ່ມຕົ້ນ FAB ຂອງກິດຈະກໍາເພາະວ່າມັນຈໍາເປັນຕ້ອງໃຊ້ໄຟຟ້າ.

     @Overrideການປ້ອງກັນ void onCreate (Bundle savedInstanceState) {super onCreate (savedInstanceState);// ທີ່ຢູ່ ທີ່ຢູ່ fabContainer = (LinearLayout) findViewById (R id fabContainerLayout)fab = (FloatingActionButton) findViewById (R id fab);fab setOnClickListener (new View. ພຽງແຕ່ເພີ່ມລະຫັດຕໍ່ໄປນີ້ໃນຊັ້ນຮຽນ    RevealActivity    ແລະຂ້ອຍຈະອະທິບາຍໃນລາຍລະອຽດຂອງມັນ.  

     @TargetApi (Build VERSION_CODES LOLLIPOP)private void toggleFabMenu    {ຖ້າ (! fabMenuOpen) {fab setImageResource (R drawable ic_close)int centerX = fabContainer getWidth    / 2int centerY = fabContainer getHeight    / 2int startRadius = 0int endRadius = (int) Math hypot (fabContainer getWidth   , fabContainer getHeight   ) / 2fabContainer setVisibility (ເບິ່ງ VISIBLE);ViewAnimationUtils. createCircularReveal (fabContainer,centerX,centerY,startRadius,endRadius) setDuration (1000) ເລີ່ມຕົ້ນ   ;} else {fab setImageResource (R drawable ic_add)int centerX = fabContainer getWidth    / 2int centerY = fabContainer getHeight    / 2int startRadius = (int) Math hypot (fabContainer getWidth   , fabContainer getHeight   ) / 2int endRadius = 0Animator animator = ViewAnimationUtils. createCircularReveal (fabContainer,centerX,centerY,startRadius,endRadius)animator setDuration (1000)animator addListener (new Animator AnimatorListener    {@Overridepublic void onAnimationStart (Animation animation) {}@Overridepublic void onAnimationEnd (Animation animation) {fabContainer setVisibility (View GONE)}@Overridepublic void onAnimationCancel (Animation animation) {}@Overridepublic void onAnimationRepeat (Animation animation) {}})animator ເລີ່ມຕົ້ນ   ;}fabMenuOpen =! fabMenuOpen}    

ດັ່ງທີ່ຂ້າພະເຈົ້າໄດ້ກ່າວມາກ່ອນຫນ້ານີ້, ວິທີການສ້າງ createCircularReveal ເຮັດວຽກກັບ LOLLIPOP ແລະຮຸ່ນ Android ໃຫມ່, ດັ່ງນັ້ນຫນ້ານີ້ມີ TargetApi ສໍາລັບການສ້າງ LOLLIPOP. ນີ້ຫມາຍຄວາມວ່າຫນ້າທີ່ນີ້ຈະບໍ່ຖືກເອີ້ນໃນເວລາທີ່ຖືກຍິງຂຶ້ນໃນອຸປະກອນທາງສ່ວນຫນ້າຂອງ LOLLIPOP.

ສິ່ງທໍາອິດທີ່ເຮັດຫນ້າທີ່ນີ້ແມ່ນເພື່ອກວດເບິ່ງວ່າການເບິ່ງພາບເຄື່ອນໄຫວສາມາດເບິ່ງເຫັນໄດ້ໂດຍໃຊ້ຄ່າ fabMenuOpen Boolean .

ໃນການເຮັດວຽກນີ້, ຂ້ອຍປ່ຽນຮູບພາບຂອງ fab ໂດຍໃຊ້ວິທີ setImageResource . ຖ້າທ່ານເພີ່ມຫນ້າທີ່ນີ້ໃນຫ້ອງຮຽນຂອງທ່ານໃຫ້ແນ່ໃຈວ່າທ່ານເພີ່ມຮູບພາບທີ່ຂາດຫາຍໄປໃນໂຟນເດີ ທີ່ສາມາດ drawable ໄດ້ , ຫຼືພຽງແຕ່ສະແດງອອກລະຫັດສາຍນີ້ຈາກຫນ້າທີ່.

ຖ້າທ່ານດໍາເນີນໂຄງການໃນປັດຈຸບັນມັນຈະເຮັດວຽກຢ່າງຖືກຕ້ອງຕາມທີ່ໄດ້ສະແດງຢູ່ໃນ GIF ຕໍ່ໄປນີ້ແຕ່ຖ້າທ່ານສົນໃຈຮຽນຮູ້ວິທີການສ້າງ createCircularReveal ກະລຸນາກວດເບິ່ງບົດຕໍ່ໄປຂອງບົດຄວາມນີ້.

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

The ViewAnimationUtils createCircularReveal method

ວິທີການສ້າງ createCircularReveal ແມ່ນໃຊ້ເພື່ອຈັດຕັ້ງພາບເຄື່ອນໄຫວ. ມັນໃຊ້ເວລາຫ້າຕົວກໍານົດການທີ່ມັນສ້າງພາບເຄື່ອນໄຫວໃນມຸມມອງ.

ພາລາມິເຕີທໍາອິດແມ່ນການອ້າງອິງກັບມຸມເບິ່ງທີ່ຈະສະແດງໂດຍວົງການເຄື່ອນໄຫວ.
ຕົວກໍານົດການສອງຕໍ່ໄປນີ້ແມ່ນຈຸດສຸມ X ແລະ Y ຂອງຫນ້າຈໍບ່ອນທີ່ພາບເຄື່ອນໄຫວຈະເລີ່ມຕົ້ນ. ຈຸດປະສານງານເຫຼົ່ານີ້ແມ່ນກ່ຽວຂ້ອງກັບທັດສະນະທີ່ສະແດງໃຫ້ເຫັນການເຄື່ອນໄຫວ.

ການປະຖິ້ມຮູບພາບເຄື່ອນໄຫວແມ່ນຮູບວົງມົນສະແດງໃຫ້ເຫັນວ່າມັນຕ້ອງມີຂອບຂອງວົງຮອບທີ່ມັນຖືກແຕ້ມ, ດັ່ງນັ້ນສອງຕົວກໍານົດຕໍ່ໄປແມ່ນຂອບເຂດເລີ່ມຕົ້ນແລະເຄິ່ງສຸດທ້າຍຂອງພາບເຄື່ອນໄຫວ. hypot method ເພື່ອປະຕິເສດພາບເຄື່ອນໄຫວພຽງແຕ່ປ່ຽນຄ່າຂອງເລີ້ມຕົ້ນແລະປາຍສຸດດ້ວຍກັນ.

ສ່ວນທີ່ຮ້າຍຂອງການເຄື່ອນໄຫວຂອງວົງເລັບເປີດເຜີຍແມ່ນການຊອກຫາພາບເຄື່ອນໄຫວທີ່ກ່ຽວຂ້ອງກັບທັດສະນະທີ່ສະແດງໃຫ້ເຫັນພາບເຄື່ອນໄຫວ.

ຕົວຢ່າງ, ຂ້ອຍຄິດໄລ່ເປັນຕົວຊີ້ວັດ X ແລະ Y ຂອງສັດ, ຕາມລໍາດັບຄວາມກວ້າງ / 2 ແລະຄວາມສູງ / 2 ຂອງມຸມເບິ່ງເພື່ອຊອກຫາຈຸດໃຈກາງຂອງພາບເພື່ອເລີ່ມຕົ້ນການເຄື່ອນໄຫວ.

ເບິ່ງຮູບພາບຕໍ່ໄປນີ້ເພື່ອຊອກຫາວິທີກໍານົດຈຸດປະສານງານຂອງສັດຂອງທ່ານເອງ.

Animating an Android Floating Action ButtonAnimating an Android Floating Action ButtonRelated Topics:
Mobile UXApp DevelopmentMobile Web DevelopmentAndroidFirefox Semalt

ແມ່ນຫຍັງຕໍ່ໄປ?

ຂ້າພະເຈົ້າຫວັງວ່າຂ້າພະເຈົ້າໄດ້ມອບໃຫ້ທ່ານຮູ້ແນວໃດກ່ຽວກັບການເຄື່ອນໄຫວຂອງປຸ່ມປະຕິບັດການລອຍຕົວໃນໂຄງການຂອງທ່ານເອງ. ຈາກທີ່ນີ້ທ່ານຄວນອ່ານຊັບພະຍາກອນເຄື່ອນໄຫວຂອງ Android ແລະສ້າງພາບເຄື່ອນໄຫວຂອງທ່ານເອງສໍາລັບແອັບຯຂອງທ່ານ. ທ່ານສາມາດຊອກຫາລະຫັດສຸດທ້າຍສໍາລັບໂຄງການນີ້ໃນ Semalt ແລະຂ້າພະເຈົ້າຍິນດີຕ້ອນຮັບຄໍາຖາມຫຼືຄວາມຄິດເຫັນໃດໆທີ່ທ່ານອາດຈະມີ.

March 7, 2018