如何在Android中实现一个动画效果的自定义下拉菜单功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
要实现的功能及思路如下:
下拉菜单样式是自定义的,非原生效果:需要使用setDropDownViewResource方法来设置下拉视图的布局样式。该方法需要传入布局资源,该布局需要定义每个条目的属性,比如宽高和文字颜色等(为了使效果明显,我将每个项目的高度设置为50 dp,文字设置为蓝色)点击这个转轮控件时,让其运行一段“从左到右,逐渐显示”的渐变动画:我通过xml的方式来定义这个动画,需要包含翻译(位移)和α(透明度)两个标签,并设置相应的属性值下拉菜单的内容列表要展示在转轮里面,需要通过适配器适配器跟转轮进行绑定:可以直接使用Android原生的ArrayAdapter选择任意一个项目后,将其内容展示在界面上,告知用户选择的内容:需要实现转轮的> public class SpinnerDemo extends Activity { private 才能static final  String [], countries =,{“北京“,,“上海“,,“广州“,,“深圳“,,“成都“,,“杭州“}; private 才能;TextView  mTextView; private 才能;Spinner  mSpinner; private 才能;ArrayAdapter< String>, mAdapter; private 才能;Animation  mAnimation; @Override才能 protected 才能;void  onCreate (Bundle onSavedInstance), { ,,,super.onCreate (onSavedInstance); ,,,setContentView (R.layout.spinner_demo); ,,,mTextView =, findViewById (R.id.textView9); ,,,mSpinner =, findViewById (R.id.spinner); ,,,mAdapter =, new ArrayAdapter<祝辞(android.R.layout.simple_spinner_item,,,国家); ,,,//,自定义的下拉视图布局样式 ,,,mAdapter.setDropDownViewResource (R.layout.spinner_drop_down); ,,,//,设置数据的适配器 ,,,mSpinner.setAdapter (mAdapter); ,,,mSpinner.setOnItemSelectedListener (new AdapterView.OnItemSelectedListener (), { ,,,,@Override ,,,,,public void onItemSelected (AdapterView<?祝辞,母公司,View 看来,,int 位置,,long id), { ,,,,,,,mTextView.setText(“你选择的是:“,+,国家(位置)); ,,,,,,,//,一定要设置父视图可见,否则,在选择后,微调控制项会消失 ,,,,,,,parent.setVisibility (View.VISIBLE); ,,,,,} ,,,,@Override ,,,,,public void onNothingSelected (AdapterView<?祝辞,父母),{ ,,,,,} ,,,}); ,,,//,通过,xml 的形式来定义动画 ,,,mAnimation =, AnimationUtils.loadAnimation(这个,,R.anim.my_anim); ,,,mSpinner.setOnTouchListener (new Spinner.OnTouchListener (), { ,,,,@Override ,,,,,public boolean ondraw (View v, MotionEvent 事件),{ ,,,,,,,//,点击,Spinner 后,运行动画 ,,,,,,,v.startAnimation (mAnimation); ,,,,,,,return 假; ,,,,,} ,,,}); ,,} }
2,布局文件spinner_demo。xml如下:
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; LinearLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" ,,,,,,android: layout_width=癿atch_parent" ,,,,,,android: layout_height=癿atch_parent" ,,,,,,android:取向=皏ertical"比; & lt;才能TextView android: layout_width=皐rap_content" ,,,,,,android: layout_height=皐rap_content" ,,,,,,android: layout_gravity=癱enter" ,,,,,,android: id=癅 + id/textView9"/比; & lt;才能Spinner android: layout_width=皐rap_content" ,,,,,,android: layout_height=皐rap_content" ,,,,,,android: id=癅 + id/spinner" ,,,,,,android: layout_gravity=癱enter" ,,,,,,android: layout_marginTop=?5 dp"/比; & lt;/LinearLayout>
3,自定义的下拉视图样式布局文件spinner_drop_down。xml如下:
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; TextView  xmlns: android=癶ttp://schemas.android.com/apk/res/android" ,,,,,,android: layout_width=皐rap_content" null null null null null null null null null null null null null null null null如何在Android中实现一个动画效果的自定义下拉菜单功能