Android Open Source - SymptomManagement Floating Action Button






From Project

Back to project page SymptomManagement.

License

The source code is released under:

Apache License

If you think the Android project SymptomManagement listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android.capstone.views;
//  w w w . ja va  2 s . c om
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.OvershootInterpolator;
import android.widget.FrameLayout;

public class FloatingActionButton extends View {

  final static OvershootInterpolator overshootInterpolator = new OvershootInterpolator();
  final static AccelerateInterpolator accelerateInterpolator = new AccelerateInterpolator();

  Context context;
  Paint mButtonPaint;
  Paint mDrawablePaint;
  Bitmap mBitmap;
  boolean mHidden = false;

  public FloatingActionButton(Context context) {
    super(context);
    this.context = context;
    init(Color.WHITE);
  }

  public void setFloatingActionButtonColor(int FloatingActionButtonColor) {
    init(FloatingActionButtonColor);
  }

  public void setFloatingActionButtonDrawable(Drawable FloatingActionButtonDrawable) {
    mBitmap = ((BitmapDrawable) FloatingActionButtonDrawable).getBitmap();
    invalidate();
  }

  public void init(int FloatingActionButtonColor) {
    setWillNotDraw(false);
    setLayerType(View.LAYER_TYPE_SOFTWARE, null);

    mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mButtonPaint.setColor(FloatingActionButtonColor);
    mButtonPaint.setStyle(Paint.Style.FILL);
    mButtonPaint.setShadowLayer(10.0f, 0.0f, 3.5f, Color.argb(100, 0, 0, 0));
    mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG);

    invalidate();
  }

  @Override
  protected void onDraw(Canvas canvas) {
    setClickable(true);
    canvas.drawCircle(getWidth() / 2, getHeight() / 2, (float) (getWidth() / 2.6), mButtonPaint);
    canvas.drawBitmap(mBitmap, (getWidth() - mBitmap.getWidth()) / 2,
        (getHeight() - mBitmap.getHeight()) / 2, mDrawablePaint);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP) {
      setAlpha(1.0f);
    } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
      setAlpha(0.6f);
    }
    return super.onTouchEvent(event);
  }

  public void hideFloatingActionButton() {
    if (!mHidden) {
      ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 1, 0);
      ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 1, 0);
      AnimatorSet animSetXY = new AnimatorSet();
      animSetXY.playTogether(scaleX, scaleY);
      animSetXY.setInterpolator(accelerateInterpolator);
      animSetXY.setDuration(100);
      animSetXY.start();
      mHidden = true;
    }
  }

  public void showFloatingActionButton() {
    if (mHidden) {
      ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 0, 1);
      ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 0, 1);
      AnimatorSet animSetXY = new AnimatorSet();
      animSetXY.playTogether(scaleX, scaleY);
      animSetXY.setInterpolator(overshootInterpolator);
      animSetXY.setDuration(200);
      animSetXY.start();
      mHidden = false;
    }
  }

  public boolean isHidden() {
    return mHidden;
  }

  static public class Builder {
    private FrameLayout.LayoutParams params;
    private final Activity activity;
    int gravity = Gravity.BOTTOM | Gravity.RIGHT; // default bottom right
    Drawable drawable;
    int color = Color.WHITE;
    int size = 0;
    float scale = 0;

    public Builder(Activity context) {
      scale = context.getResources().getDisplayMetrics().density;
      size = convertToPixels(72, scale); // default size is 72dp by 72dp
      params = new FrameLayout.LayoutParams(size, size);
      params.gravity = gravity;

      this.activity = context;
    }

    
    public Builder withGravity(int gravity) {
      this.gravity = gravity;
      return this;
    }

    
    public Builder withMargins(int left, int top, int right, int bottom) {
      params.setMargins(
          convertToPixels(left, scale),
          convertToPixels(top, scale),
          convertToPixels(right, scale),
          convertToPixels(bottom, scale));
      return this;
    }

    
    public Builder withDrawable(final Drawable drawable) {
      this.drawable = drawable;
      return this;
    }

    
    public Builder withButtonColor(final int color) {
      this.color = color;
      return this;
    }

    
    public Builder withButtonSize(int size) {
      size = convertToPixels(size, scale);
      params = new FrameLayout.LayoutParams(size, size);
      return this;
    }

    public FloatingActionButton create() {
      final FloatingActionButton button = new FloatingActionButton(activity);
      button.setFloatingActionButtonColor(this.color);
      button.setFloatingActionButtonDrawable(this.drawable);
      params.gravity = this.gravity;
      ViewGroup root = (ViewGroup) activity.findViewById(android.R.id.content);
      root.addView(button, params);
      return button;
    }

    
    private int convertToPixels(int dp, float scale){
      return (int) (dp * scale + 0.5f) ;
    }
  }
}




Java Source Code List

android.UnusedStub.java
com.android.capstone.BaseActivity.java
com.android.capstone.DatePickerFragment.java
com.android.capstone.MainActivity.java
com.android.capstone.RegisterFragment.java
com.android.capstone.data.CheckinSvcApi.java
com.android.capstone.data.Checkin.java
com.android.capstone.data.Doctor.java
com.android.capstone.data.GPlusProfile.java
com.android.capstone.data.MedicationCheckinQA.java
com.android.capstone.data.Medications.java
com.android.capstone.data.Patient.java
com.android.capstone.data.VDoctor.java
com.android.capstone.data.VPatient.java
com.android.capstone.db.SymptomManagementContract.java
com.android.capstone.db.SymptomManagementDbHelper.java
com.android.capstone.db.SymptomManagementProvider.java
com.android.capstone.doctor.CheckinLogsListAdapter.java
com.android.capstone.doctor.CheckinLogs_Doctor_Fragment.java
com.android.capstone.doctor.DisplayCheckinActivity.java
com.android.capstone.doctor.DoctorMain_Fragment.java
com.android.capstone.doctor.Doctor_Main_CursorAdapter.java
com.android.capstone.doctor.Doctor_VPatient_Activity.java
com.android.capstone.doctor.Doctor_VPatient_Fragment.java
com.android.capstone.doctor.MedicationsListAdapter.java
com.android.capstone.doctor.MedicationsListFragment.java
com.android.capstone.doctor.alarm.CheckPainIntentService.java
com.android.capstone.doctor.alarm.CheckPain.java
com.android.capstone.doctor.alarm.CheckinAlarmService.java
com.android.capstone.doctor.alarm.OnBootReceiver.java
com.android.capstone.gcm.GcmBroadcastReceiver.java
com.android.capstone.gcm.GcmIntentService.java
com.android.capstone.patient.CheckinNowActivity.java
com.android.capstone.patient.PatientMain_Fragment.java
com.android.capstone.patient.Patient_Main_CursorAdapter.java
com.android.capstone.patient.ReminderCursorAdapter.java
com.android.capstone.patient.RemindersActivity.java
com.android.capstone.patient.TimePickerFragment.java
com.android.capstone.patient.checkin_now.model.AbstractWizardModel.java
com.android.capstone.patient.checkin_now.model.BranchPage.java
com.android.capstone.patient.checkin_now.model.CheckinNow_Model.java
com.android.capstone.patient.checkin_now.model.ModelCallbacks.java
com.android.capstone.patient.checkin_now.model.MultipleFixedChoicePage.java
com.android.capstone.patient.checkin_now.model.PageList.java
com.android.capstone.patient.checkin_now.model.PageTreeNode.java
com.android.capstone.patient.checkin_now.model.Page.java
com.android.capstone.patient.checkin_now.model.ReviewItem.java
com.android.capstone.patient.checkin_now.model.SingleFixedChoicePage.java
com.android.capstone.patient.checkin_now.ui.MultipleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.PageFragmentCallbacks.java
com.android.capstone.patient.checkin_now.ui.ReviewFragment.java
com.android.capstone.patient.checkin_now.ui.SingleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.StepPagerStrip.java
com.android.capstone.task.AddCheckinTask.java
com.android.capstone.task.AddMedicationsTask.java
com.android.capstone.task.AddPatientTask.java
com.android.capstone.task.GetClientCategoryTask.java
com.android.capstone.task.GetClientInfoTask.java
com.android.capstone.task.GetUserImageTask.java
com.android.capstone.task.RegisterDoctorTask.java
com.android.capstone.task.RegisterPatientTask.java
com.android.capstone.utils.CommonUtils.java
com.android.capstone.utils.RetrofitUtils.java
com.android.capstone.utils.SharedPrefUtils.java
com.android.capstone.views.CheckinLogsView.java
com.android.capstone.views.FloatingActionButton.java
com.coursera.capstone.checkin.Application.java
com.coursera.capstone.checkin.client.CheckinSvcApi.java
com.coursera.capstone.checkin.client.TokenSvcApi.java
com.coursera.capstone.checkin.controller.CheckinSvc.java
com.coursera.capstone.data.CheckinUtils.java
com.coursera.capstone.data.Checkin.java
com.coursera.capstone.data.ClientUtils.java
com.coursera.capstone.data.Constants.java
com.coursera.capstone.data.DoctorUtils.java
com.coursera.capstone.data.Doctor.java
com.coursera.capstone.data.InvalidRequestException.java
com.coursera.capstone.data.Medications.java
com.coursera.capstone.data.Message.java
com.coursera.capstone.data.MulticastResult.java
com.coursera.capstone.data.PMF.java
com.coursera.capstone.data.PatientUtils.java
com.coursera.capstone.data.Patient.java
com.coursera.capstone.data.Result.java
com.coursera.capstone.data.Sender.java
com.coursera.capstone.data.Token.java
com.coursera.capstone.data.VDoctor.java
com.coursera.capstone.data.VPatient.java
com.coursera.capstone.interceptor.AuthorizationInterceptor.java
com.coursera.capstone.interceptor.Checker.java