1.创建一个spinner对象

2.创建一个适配器 adapter (spinner)

3.adapter选择spinner样式

4.spinner得到adapter

5.spinner添加OnItemSelectedListener

6.spinner设置SetOnTouchListener

 

SpinnerActivity.java

            
  1. package com.luwenjie.android; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.view.MotionEvent; 
  6. import android.view.View; 
  7. import android.view.animation.Animation; 
  8. import android.view.animation.AnimationUtils; 
  9. import android.widget.AdapterView; 
  10. import android.widget.ArrayAdapter; 
  11. import android.widget.Spinner; 
  12. import android.widget.TextView; 
  13.  
  14. public class SpinnerActivity extends Activity{ 
  15.      
  16.     private static final String[] countriesStr = {"北京","上海","天津","重庆","南京"}; 
  17.     private TextView tv; 
  18.     private Spinner spinner; 
  19.     private ArrayAdapteradapter; 
  20.     private Animation myAnimation; 
  21.      
  22.     @Override 
  23.     public void onCreate(Bundle savedInstanceState) { 
  24.         // TODO Auto-generated method stub 
  25.         super.onCreate(savedInstanceState); 
  26.         setContentView(R.layout.spinner); 
  27.              
  28.         tv = (TextView)findViewById(R.id.spText); 
  29.         spinner = (Spinner)findViewById(R.id.spinner); 
  30.          
  31.         adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,countriesStr); 
  32.          
  33.         //自定义下拉菜单样式 
  34.         adapter.setDropDownViewResource(R.layout.myspinner_dropdown); 
  35.          
  36.         //将Array添加Spinner对象中 
  37.         spinner.setAdapter(adapter); 
  38.          
  39.         //将spinner添加OnItemSelectedListener 
  40.         spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ 
  41.             @Override 
  42.             public void onItemSelected(AdapterView<?> arg0, View view, 
  43.                     int position, long id) { 
  44.                 //将所选spinner的值带入tv中 
  45.                 tv.setText("选择的是:" + countriesStr[position]); 
  46.                 //view.setVisibility(View.VISIBLE); 
  47.             } 
  48.  
  49.             @Override 
  50.             public void onNothingSelected(AdapterView<?> arg0) { 
  51.                 // TODO Auto-generated method stub 
  52.                  
  53.             } 
  54.         }); 
  55.          
  56.         //取得Animation  定义在res/anim目录下 
  57.         myAnimation = AnimationUtils.loadAnimation(this, R.anim.my_anim); 
  58.          
  59.         //将spinner添加OntouchListener 
  60.         spinner.setOnTouchListener(new Spinner.OnTouchListener(){ 
  61.  
  62.             @Override 
  63.             public boolean onTouch(View v, MotionEvent event) { 
  64.                 //将spinner 运行 animation 
  65.                 spinner.startAnimation(myAnimation); 
  66.                 //将spinner隐藏 
  67.                 //spinner.setVisibility(View.INVISIBLE); 
  68.                 return false
  69.             } 
  70.         }); 
  71.          
  72.         spinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){ 
  73.             @Override 
  74.             public void onFocusChange(View v, boolean hasFocus) { 
  75.                 // TODO Auto-generated method stub 
  76.             } 
  77.         }); 
  78.     } 


res/anim/my_anim.xml

                
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <set 
  3.     xmlns:android="http://schemas.android.com/apk/res/android"> 
  4.     <translate  
  5.         android:fromXDelta="0" 
  6.         android:toXDelta="-100%p" 
  7.         android:duration="300" 
  8.         /> 
  9.     <alpha  
  10.         android:fromAlpha="1.0" 
  11.         android:toAlpha="0.0" 
  12.         android:duration="300" 
  13.         /> 
  14. set> 

res/layout/spinner.xml

                
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent" 
  5.     android:orientation="vertical" > 
  6.  
  7.    <TextView 
  8.        android:id="@+id/spText" 
  9.        android:layout_width="fill_parent"    
  10.        android:layout_height="wrap_content" 
  11.        /> 
  12.     
  13.    <Spinner  
  14.        android:id="@+id/spinner" 
  15.        android:layout_width="wrap_content" 
  16.        android:layout_height="wrap_content" 
  17.        /> 
  18.     
  19.      
  20. LinearLayout> 

 

 

 

 

 

更多相关文章

  1. Android 自定义Dialog样式
  2. Dialog样式
  3. Android Material Design按钮样式设计
  4. 【android】解决自定义样式progressbar的进度显示问题
  5. android:为TextView添加样式——下划线,颜色,设置链接样式及前背景
  6. Android文本样式——上
  7. Android —— 禁止转向、简单外部样式的设置
  8. React Native如何适配iOS \ Android样式
  9. android中listview的一些样式设置(关键点集合)

随机推荐

  1. 字符串和数组常用API
  2. 表单、iframe后台、元素样式来源优先级
  3. php7中停止php-fpm服务的方法详解
  4. 阿里三面:Java的synchronized 能防止指令
  5. android之有返回结果跳转intent
  6. Xamarin 2.0编译报错缺少Google Maps Lib
  7. webKit For Android
  8. android adb工具使用
  9. Android中手机震动(Vibrator)
  10. 利用drozer进行Android渗透测试 - AndroS