package com.qmusic.controls.dialogs; import android.app.Service; import android.content.Context; import android.graphics.Rect; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; import android.widget.Toast; import com.qmusic.MyApplication; import com.qmusic.R; public final class BToast { public static final void toast(String msg) { Toast.makeText(MyApplication.getContext(), msg, Toast.LENGTH_SHORT).show(); } public static final void toast(int msg) { Toast.makeText(MyApplication.getContext(), msg, Toast.LENGTH_SHORT).show(); } public static final void toast(View view, String msg) { toast(view, msg, RelativeLayout.ALIGN_TOP); } /** * * @param view * The view where the toast should be aligned * @param msg * @param alignType * RelativeLayout.ALIGN_TOP,RelativeLayout.ALIGN_BOTTOM */ public static final void toast(View view, String msg, int alignType) { Rect outRect = new Rect(); view.getWindowVisibleDisplayFrame(outRect); int[] location = new int[2]; view.getLocationInWindow(location); Rect rect = new Rect(); view.getWindowVisibleDisplayFrame(rect); Toast toast = Toast.makeText(view.getContext(), msg, Toast.LENGTH_SHORT); if (alignType == RelativeLayout.ALIGN_TOP) { // TODO: how to get toast height DisplayMetrics displayMetrics = view.getContext().getResources().getDisplayMetrics(); toast.setGravity(Gravity.LEFT | Gravity.TOP, location[0], location[1] + rect.top - view.getHeight() - (int) (48 * displayMetrics.density)); } else if (alignType == RelativeLayout.ALIGN_BOTTOM) { DisplayMetrics displayMetrics = view.getContext().getResources().getDisplayMetrics(); toast.setGravity(Gravity.LEFT | Gravity.TOP, location[0], location[1] + rect.top - (int) (10 * displayMetrics.density)); } toast.show(); } public static final void toastCustomerView(Context ctx) { Toast toast = new Toast(ctx); toast.setDuration(Toast.LENGTH_SHORT); LayoutInflater layoutInflater = (LayoutInflater) ctx.getSystemService(Service.LAYOUT_INFLATER_SERVICE); View mLayout = layoutInflater.inflate(R.layout.dialog_layout, null); toast.setView(mLayout); toast.show(); } }