本文章向大家介紹如何在Android中實現(xiàn)一個圓盤旋轉(zhuǎn)菜單效果的基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比革吉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式革吉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋革吉地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
1. 菜單布局文件:
2. MainActivity;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; import android.widget.RelativeLayout; public class MainActivity extends Activity { private ImageButton home; private ImageButton menu; private RelativeLayout level2; private RelativeLayout level3; private boolean isLevel2Show = true; private boolean isLevel3Show = true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); home = (ImageButton) findViewById(R.id.home); menu = (ImageButton) findViewById(R.id.menu); level2 = (RelativeLayout) findViewById(R.id.level2); level3 = (RelativeLayout) findViewById(R.id.level3); menu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(isLevel3Show){ //隱藏3級導(dǎo)航菜單 MyAnimation.startAnimationOUT(level3, 500, 0); }else { //顯示3級導(dǎo)航菜單 MyAnimation.startAnimationIN(level3, 500); } isLevel3Show = !isLevel3Show; } }); home.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(!isLevel2Show){ //顯示2級導(dǎo)航菜單 MyAnimation.startAnimationIN(level2, 500); } else { if(isLevel3Show){ //隱藏3級導(dǎo)航菜單 MyAnimation.startAnimationOUT(level3, 500, 0); //隱藏2級導(dǎo)航菜單 MyAnimation.startAnimationOUT(level2, 500, 500); isLevel3Show = !isLevel3Show; } else { //隱藏2級導(dǎo)航菜單 MyAnimation.startAnimationOUT(level2, 500, 0); } } isLevel2Show = !isLevel2Show; } }); } }
3. 自定義動畫類MyAnimation:
import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.RotateAnimation; public class MyAnimation { //入動畫 public static void startAnimationIN(ViewGroup viewGroup, int duration){ for(int i = 0; i < viewGroup.getChildCount(); i++ ){ viewGroup.getChildAt(i).setVisibility(View.VISIBLE);//設(shè)置顯示 viewGroup.getChildAt(i).setFocusable(true);//獲得焦點 viewGroup.getChildAt(i).setClickable(true);//可以點擊 } Animation animation; /** * 旋轉(zhuǎn)動畫 * RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue) * fromDegrees 開始旋轉(zhuǎn)角度 * toDegrees 旋轉(zhuǎn)到的角度 * pivotXType X軸 參照物 * pivotXValue x軸 旋轉(zhuǎn)的參考點 * pivotYType Y軸 參照物 * pivotYValue Y軸 旋轉(zhuǎn)的參考點 */ animation = new RotateAnimation(-180, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1.0f); animation.setFillAfter(true);//停留在動畫結(jié)束位置 animation.setDuration(duration); viewGroup.startAnimation(animation); } //出動畫 public static void startAnimationOUT(final ViewGroup viewGroup, int duration , int startOffSet){ Animation animation; animation = new RotateAnimation(0, -180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1.0f); animation.setFillAfter(true);//停留在動畫結(jié)束位置 animation.setDuration(duration); animation.setStartOffset(startOffSet); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { for(int i = 0; i < viewGroup.getChildCount(); i++ ){ viewGroup.getChildAt(i).setVisibility(View.GONE);//設(shè)置顯示 viewGroup.getChildAt(i).setFocusable(false);//獲得焦點 viewGroup.getChildAt(i).setClickable(false);//可以點擊 } } }); viewGroup.startAnimation(animation); } }
以上就是小編為大家?guī)淼娜绾卧贏ndroid中實現(xiàn)一個圓盤旋轉(zhuǎn)菜單效果的全部內(nèi)容了,希望大家多多支持創(chuàng)新互聯(lián)!