@Override public void onClick(View v) { if(v instanceof FloatingActionButton){ FloatingActionButton bt = (FloatingActionButton)v; bt.setLineMorphingState((bt.getLineMorphingState() + 1) % 2, true); } // System.out.println(v + " " + ((RippleDrawable)v.getBackground()).getDelayClickType()); } };
@Override public void onClick(View v) { index = (index + 1) % 2; fab_image.setIcon(mDrawables[index], true); } });
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
public void stopAnimation() { mRunning = false; mPrevIcon.setCallback(null); unscheduleDrawable(mPrevIcon); mPrevIcon = null; mIcon.setAlpha(255); if(getHandler() != null) getHandler().removeCallbacks(this); invalidate(); }
public void applyStyle(int resId){ ViewUtil.applyStyle(this, resId); applyStyle(getContext(), null, 0, resId); }
mBackground.setInEditMode(isInEditMode()); mBackground.setBounds(0, 0, getWidth(), getHeight()); mBackground.setCallback(this); setIcon(new LineMorphingDrawable.Builder(context, iconLineMorphing).build(), false); else if(iconSrc != 0) setIcon(context.getResources().getDrawable(iconSrc), false); getRippleManager().onCreate(this, context, attrs, defStyleAttr, defStyleRes); Drawable background = getBackground(); if(background != null && background instanceof RippleDrawable){ RippleDrawable drawable = (RippleDrawable)background;
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_fab, container, false); final FloatingActionButton fab_line = (FloatingActionButton)v.findViewById(R.id.fab_line); fab_line.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { fab_line.setLineMorphingState((fab_line.getLineMorphingState() + 1) % 2, true); } }); final FloatingActionButton fab_image = (FloatingActionButton)v.findViewById(R.id.fab_image); mDrawables[0] = v.getResources().getDrawable(R.drawable.ic_autorenew_white_24dp); mDrawables[1] = v.getResources().getDrawable(R.drawable.ic_done_white_24dp); fab_image.setIcon(mDrawables[index], false); fab_image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { index = (index + 1) % 2; fab_image.setIcon(mDrawables[index], true); } }); return v; }
protected void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { setClickable(true); mSwitchIconAnimator = new SwitchIconAnimator(); applyStyle(context, attrs, defStyleAttr, defStyleRes); if(!isInEditMode()) mStyleId = ThemeManager.getStyleId(context, attrs, defStyleAttr, defStyleRes); }
@Override protected void onRestoreInstanceState(Parcelable state) { SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); if(ss.state >= 0) setLineMorphingState(ss.state, false); requestLayout(); }
@Override public void run() { long curTime = SystemClock.uptimeMillis(); float progress = Math.min(1f, (float)(curTime - mStartTime) / mAnimDuration); float value = mInterpolator.getInterpolation(progress); mIcon.setAlpha(Math.round(255 * value)); mPrevIcon.setAlpha(Math.round(255 * (1f - value))); if(progress == 1f) stopAnimation(); if(mRunning) { if(getHandler() != null) getHandler().postAtTime(this, SystemClock.uptimeMillis() + ViewUtil.FRAME_DURATION); else stopAnimation(); } invalidate(); }
@Override protected Parcelable onSaveInstanceState() { Parcelable superState = super.onSaveInstanceState(); SavedState ss = new SavedState(superState); ss.state = getLineMorphingState(); return ss; }
bt_raise.setOnClickListener(listener); bt_raise_wave.setOnClickListener(listener); bt_float.setOnClickListener(listener); bt_float_wave.setOnClickListener(listener); bt_raise_color.setOnClickListener(listener_delay); bt_raise_wave_color.setOnClickListener(listener_delay); bt_float_color.setOnClickListener(listener_delay); bt_float_wave_color.setOnClickListener(listener_delay);
public static FloatingActionButton make(Context context, int resId){ return new FloatingActionButton(context, null, resId); }
@Override protected void drawableStateChanged() { super.drawableStateChanged(); if(mBackground != null) mBackground.setState(getDrawableState()); if(mIcon != null) mIcon.setState(getDrawableState()); if(mPrevIcon != null) mPrevIcon.setState(getDrawableState()); }
@Override public void onThemeChanged(ThemeManager.OnThemeChangedEvent event) { int style = ThemeManager.getInstance().getCurrentStyle(mStyleId); if(mCurrentStyle != style){ mCurrentStyle = style; applyStyle(mCurrentStyle); } }
public boolean startAnimation(Drawable icon) { if(mIcon == icon) return false; mPrevIcon = mIcon; mIcon = icon; float half = mIconSize / 2f; mIcon.setBounds((int)(mBackground.getCenterX() - half), (int)(mBackground.getCenterY() - half), (int)(mBackground.getCenterX() + half), (int)(mBackground.getCenterY() + half)); mIcon.setCallback(FloatingActionButton.this); if(getHandler() != null){ resetAnimation(); mRunning = true; getHandler().postAtTime(this, SystemClock.uptimeMillis() + ViewUtil.FRAME_DURATION); } else { mPrevIcon.setCallback(null); unscheduleDrawable(mPrevIcon); mPrevIcon = null; } invalidate(); return true; }
@Override public void onClick(View v) { fab_line.setLineMorphingState((fab_line.getLineMorphingState() + 1) % 2, true); } });
@Override public void onClick(View v) { if(v instanceof FloatingActionButton){ FloatingActionButton bt = (FloatingActionButton)v; bt.setLineMorphingState((bt.getLineMorphingState() + 1) % 2, true); } // System.out.println(v + " " + ((RippleDrawable)v.getBackground()).getDelayClickType()); } };