Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能
我們在購物APP里面設置收貨地址時,都會有讓我們選擇省份及城市的下拉菜單項。今天我將使用Android原生的 Spinner 控件來實現(xiàn)一個自定義的下拉菜單功能,并配上一個透明漸變動畫效果。
要實現(xiàn)的功能及思路如下:
下拉菜單樣式是自定義的、非原生效果:需要使用 setDropDownViewResource 方法來設置下拉視圖的布局樣式。該方法需要傳入布局資源,該布局需要定義每個 Item 的屬性,比如寬高和文字顏色等(為了使效果明顯,我將每個 Item 的高度設置為 50 dp,文字設置為藍色)點擊這個 Spinner 控件時,讓其運行一段“從左到右、逐漸顯示”的漸變動畫:我通過 xml 的方式來定義這個動畫,需要包含 translate(位移) 和 alpha(透明度) 兩個TAG,并設置相應的屬性值下拉菜單的內(nèi)容列表要展示在 Spinner 里面,需要通過適配器 Adapter 跟 Spinner 進行綁定:可以直接使用Android原生的 ArrayAdapter選擇任意一個 Item 后,將其內(nèi)容展示在界面上,告知用戶選擇的內(nèi)容:需要實現(xiàn) Spinner 的 onItemSelected 監(jiān)聽回調(diào)
源碼如下:
1、主Activity(注意代碼中的注釋,不然你會遇到一些坑!)
public class SpinnerDemo extends Activity {
private static final String[] countries = {"北京", "上海", "廣州", "深圳", "成都", "杭州"};
private TextView mTextView;
private Spinner mSpinner;
private ArrayAdapter 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<>(this, android.R.layout.simple_spinner_item, countries);
// 自定義的下拉視圖布局樣式
mAdapter.setDropDownViewResource(R.layout.spinner_drop_down);
// 設置數(shù)據(jù)的適配器
mSpinner.setAdapter(mAdapter);
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
mTextView.setText("你選擇的是:" + countries[position]);
// 一定要設置父視圖可見,否則 在選擇后,Spinner會消失
parent.setVisibility(View.VISIBLE);
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
// 通過 xml 的形式來定義動畫
mAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim);
mSpinner.setOnTouchListener(new Spinner.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 點擊 Spinner 后,運行動畫
v.startAnimation(mAnimation);
return false;
}
});
}
}
2、布局文件 spinner_demo.xml 如下:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="wrap_content"
android:layout_gravity="center"
android:id="@+id/textView9"/>
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:layout_gravity="center"
android:layout_marginTop="15dp"/>
3、自定義的下拉視圖樣式布局文件 spinner_drop_down.xml 如下:
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="@color/colorBlue"
android:singleLine="true"
style="?android:attr/spinnerDropDownItemStyle">
4、自定義動畫 xml 文件如下:
android:fromXDelta="0"
android:toXDelta="50%p"
android:duration="2000"/>
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000"/>
5、效果圖如下:
到此這篇關于Android實現(xiàn)動畫效果的自定義下拉菜單功能的文章就介紹到這了,更多相關android自定義下拉菜單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
總結
以上是生活随笔為你收集整理的Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言字符型数组ppt,C语言第13讲指
- 下一篇: android重写方法,android中