package cn.qqtheme.androidpicker; import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.widget.Button; import android.widget.TextView; import cn.qqtheme.framework.picker.OptionPicker; import cn.qqtheme.framework.widget.WheelView; /** * 自定义顶部及底部 * <p> * Author:李玉江[QQ:1032694760] * Email:liyujiang_tk@yeah.net * DateTime:2016/1/29 14:47 * Builder:Android Studio */ public class CustomHeaderAndFooterPicker extends OptionPicker implements OptionPicker.OnWheelListener { private TextView titleView; public CustomHeaderAndFooterPicker(Activity activity) { super(activity, new String[]{ "Java/Android", "PHP/MySQL", "HTML/CSS/JS", "C/C++" }); setSelectedIndex(1); setDividerRatio(WheelView.DividerConfig.FILL); setOnWheelListener(this); } @Override protected void showAfter() { View rootView = getRootView(); AnimatorSet animatorSet = new AnimatorSet(); ObjectAnimator alpha = ObjectAnimator.ofFloat(rootView, "alpha", 0, 1); ObjectAnimator translation = ObjectAnimator.ofFloat(rootView, "translationY", 300, 0); animatorSet.playTogether(alpha, translation); animatorSet.setDuration(2000); animatorSet.setInterpolator(new AccelerateInterpolator()); animatorSet.start(); } @Override public void dismiss() { View rootView = getRootView(); AnimatorSet animatorSet = new AnimatorSet(); ObjectAnimator alpha = ObjectAnimator.ofFloat(rootView, "alpha", 1, 0); ObjectAnimator translation = ObjectAnimator.ofFloat(rootView, "translationX", 0, rootView.getWidth()); ObjectAnimator rotation = ObjectAnimator.ofFloat(rootView, "rotation", 0, 120); animatorSet.playTogether(alpha, translation, rotation); animatorSet.setDuration(2000); animatorSet.setInterpolator(new AccelerateInterpolator()); animatorSet.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { dismissImmediately(); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); animatorSet.start(); } @Nullable @Override protected View makeHeaderView() { View view = LayoutInflater.from(activity).inflate(R.layout.picker_header, null); titleView = (TextView) view.findViewById(R.id.picker_title); titleView.setText(titleText); view.findViewById(R.id.picker_close).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); return view; } @Nullable @Override protected View makeFooterView() { View view = LayoutInflater.from(activity).inflate(R.layout.picker_footer, null); Button submitView = (Button) view.findViewById(R.id.picker_submit); submitView.setText(submitText); submitView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); onSubmit(); } }); Button cancelView = (Button) view.findViewById(R.id.picker_cancel); cancelView.setText(cancelText); cancelView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); onCancel(); } }); return view; } @Override public void onWheeled(int index, String item) { if (titleView != null) { titleView.setText(item); } } @Override public void onSubmit() { super.onSubmit(); } @Override protected void onCancel() { super.onCancel(); } }