package kr.kdev.dg1s.biowiki.ui; import android.app.Activity; import android.view.View; import android.view.ViewGroup; import android.view.animation.AccelerateInterpolator; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.widget.FrameLayout.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; import kr.kdev.dg1s.biowiki.R; public class OnTopMessage { private LinearLayout mLayout; private TextView mTextView; private AlphaAnimation mHideAnimation; private AlphaAnimation mShowAnimation; public OnTopMessage(Activity activity) { ViewGroup root = (ViewGroup) activity.findViewById(android.R.id.content); init(activity, root); } public OnTopMessage(Activity activity, ViewGroup root) { init(activity, root); } private void init(Activity activity, ViewGroup root) { View v = activity.getLayoutInflater().inflate(R.layout.on_top_message, root); mLayout = (LinearLayout) v.findViewById(R.id.otm_layout); mLayout.setClickable(true); mLayout.setVisibility(View.GONE); mTextView = (TextView) v.findViewById(R.id.otm_message); mHideAnimation = new AlphaAnimation(1.0f, 0.0f); mHideAnimation.setInterpolator(new AccelerateInterpolator()); mHideAnimation.setDuration(activity.getResources().getInteger(android.R.integer.config_mediumAnimTime)); mHideAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mLayout.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); mShowAnimation = new AlphaAnimation(0.0f, 1.0f); mShowAnimation.setInterpolator(new AccelerateInterpolator()); mShowAnimation.setDuration(activity.getResources().getInteger(android.R.integer.config_mediumAnimTime)); } public void setMessage(String message) { mTextView.setText(message); } public void show(boolean animated) { mLayout.setVisibility(View.VISIBLE); if (animated) { mLayout.startAnimation(mShowAnimation); } } public void hide(boolean animated) { if (animated) { mLayout.startAnimation(mHideAnimation); } else { mLayout.setVisibility(View.GONE); } } public boolean isVisible() { return mLayout.getVisibility() == View.VISIBLE; } public void setTopMargin(int topMargin) { LayoutParams layoutParams = (LayoutParams) mLayout.getLayoutParams(); layoutParams.setMargins(layoutParams.leftMargin, topMargin, layoutParams.rightMargin, layoutParams.bottomMargin); mLayout.setLayoutParams(layoutParams); } }