仿IPhone從底部彈出選項菜單

fydxdk 9年前發布 | 2K 次閱讀 Java Android

       項目中開發需要,就是在點擊某個控件(如頭像ImageView)時要求彈出一個操作的選項菜單(對話框),效果就是像IPhone的一樣,從手機屏幕底部往上彈出的,做了個簡單的效果工具類,寫下來方便下次使用。

    首先我們要定義彈出的對話框樣式:

ublic static Dialog createShowAlert(final Context context, int layoutId) {/*方法中要傳入建立對話框的Layout/
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(layoutId, null);
final int cFullFillWidth = 10000;
layout.setMinimumWidth(cFullFillWidth);

            /** R.style.My_Dialog_Style為項目中正定義的樣式*/

final Dialog dlg = new Dialog(context, R.style.My_Dialog_Style); Window w = dlg.getWindow(); WindowManager.LayoutParams lp = w.getAttributes(); lp.x = 0; final int cMakeBottom = -1000; lp.y = cMakeBottom; lp.gravity = Gravity.BOTTOM;//*此處改變顯示位置/ dlg.onWindowAttributesChanged(lp); dlg.setCanceledOnTouchOutside(true); dlg.setContentView(layout); return dlg; }

/*在需要創建對話框的地方調用上面方法就可以**/

public static final Dialog showConfirmAlert(final Context context, int titleStrId, int itemStrId, int itemColorId, View.OnClickListener onClick) {

final Dialog dlg = createShowAlert(context, R.layout.my_dialog);/*調用上面的方法/ TextView titleView = (TextView) dlg.findViewById(R.id.textview1); titleView.setText(titleStrId); TextView itemView = (TextView) dlg.findViewById(R.id.textview2); itemView.setText(itemStrId); itemView.setTextColor(context.getResources().getColor(onClick)); itemView.setOnClickListener(onClick); dlg.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dlg.dismiss(); } }); return dlg; }

這樣就可以創建一個對話框了。</pre>

 本文由用戶 fydxdk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!