目标是:自定义下拉菜单的使用和动画效果的编辑;
JAVA代码是:
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class MyActivity extends Activity {
private static final String[] citiesStr =
{"北京市","上海市","深圳市","天津市"};
private Spinner mySpinner;
private TextView myTextView;
private
ArrayAdapter adapter;
Animation myAnimation;
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myTextView = (TextView) findViewById(R.id.tv01);
mySpinner = (Spinner) findViewById(R.id.sn01);
adapter = new
ArrayAdapter(this,
android.R.layout.simple_spinner_item, citiesStr);
//定义下拉菜单的样式
adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
//将arrayAdapter添加到spinner中
mySpinner.setAdapter(adapter);
//添加事件监听器
mySpinner.setOnItemSelectedListener(new
Spinner.OnItemSelectedListener() {
@Override
public void
onItemSelected(AdapterView> parent,
View view,
int
position, long id) {
myTextView.setText("您选择的是"+citiesStr[position]);
parent.setVisibility(view.VISIBLE);
}
@Override
public void
onNothingSelected(AdapterView>
parent) {
}
});
myAnimation = AnimationUtils.loadAnimation(this,R.anim.anmi);
mySpinner.setOnTouchListener(new Spinner.OnTouchListener() {
@Override
public
boolean onTouch(View v, MotionEvent event) {
v.startAnimation(myAnimation);
//隐藏mySpinner
return
false;
}
});
mySpinner.setOnFocusChangeListener(new
Spinner.OnFocusChangeListener() {
@Override
public void
onFocusChange(View v, boolean hasFocus) {
}
});
}
}
下拉菜单的样式xml文件:
encoding="utf-8"?>
android:id="@+id/tv02"
android:layout_width="wrap_content"
android:layout_height="24sp"
android:singleLine="true"
style="?android:attr/spinnerDropDownItemStyle"
/>
动画效果的xml文件:
encoding="utf-8"?>
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="300"
>
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="300">