Android怎么自定义弹出框(android,开发技术)

时间:2024-04-26 21:31:32 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

效果图

Android怎么自定义弹出框

1、先定义个一个继承自Dialog的自定义弹框CustomDialog

importandroid.app.Dialog;importandroid.content.Context;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.TextView;/***作者AaronZhao*时间2015/9/1611:21*名称CustomDialog.java描述*/publicclassCustomDialogextendsDialog{/*Constructor*/privateCustomDialog(Contextcontext){super(context);}privateCustomDialog(Contextcontext,intthemeResId){super(context,themeResId);}privateCustomDialog(Contextcontext,booleancancelable,OnCancelListenercancelListener){super(context,cancelable,cancelListener);}/*Builder*/publicstaticclassBuilder{privateTextViewtvTitle,tvWarning,tvInfo;privateButtonbtnCancel,btnConfirm;privateViewmLayout;privateView.OnClickListenermButtonCancelClickListener;privateView.OnClickListenermButtonConfirmClickListener;privateCustomDialogmDialog;publicBuilder(Contextcontext){mDialog=newCustomDialog(context,R.style.custom_dialog);LayoutInflaterinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);//加载布局文件mLayout=inflater.inflate(R.layout.dialog_custom,null,false);//添加布局文件到DialogmDialog.addContentView(mLayout,newViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT));tvTitle=(TextView)mLayout.findViewById(R.id.tv_title);tvWarning=(TextView)mLayout.findViewById(R.id.tv_warning);tvInfo=(TextView)mLayout.findViewById(R.id.tv_info);btnCancel=(Button)mLayout.findViewById(R.id.btn_cancel);btnConfirm=(Button)mLayout.findViewById(R.id.btn_confirm);}/***设置Dialog标题*/publicBuildersetTitle(Stringtitle){tvTitle.setText(title);tvTitle.setVisibility(View.VISIBLE);returnthis;}/***设置Warning*/publicBuildersetWarning(Stringwaring){tvWarning.setText(waring);if(waring==null||waring.equals("")){tvWarning.setVisibility(View.GONE);}returnthis;}/***设置Info*/publicBuildersetInfo(Stringmessage){tvInfo.setText(message);returnthis;}/***设置取消按钮文字和监听*/publicBuildersetButtonCancel(Stringtext,View.OnClickListenerlistener){btnCancel.setText(text);mButtonCancelClickListener=listener;returnthis;}/***设置确认按钮文字和监听*/publicBuildersetButtonConfirm(Stringtext,View.OnClickListenerlistener){btnConfirm.setText(text);mButtonConfirmClickListener=listener;returnthis;}publicCustomDialogcreate(){btnCancel.setOnClickListener(newandroid.view.View.OnClickListener(){@OverridepublicvoidonClick(Viewview){mDialog.dismiss();mButtonCancelClickListener.onClick(view);}});btnConfirm.setOnClickListener(newandroid.view.View.OnClickListener(){@OverridepublicvoidonClick(Viewview){mDialog.dismiss();mButtonConfirmClickListener.onClick(view);}});mDialog.setContentView(mLayout);mDialog.setCancelable(true);mDialog.setCanceledOnTouchOutside(false);returnmDialog;}}}

2、定义CustomDialo布局文件:dialog_custom

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><LinearLayoutandroid:layout_width="300dp"android:layout_height="wrap_content"android:background="@drawable/rect_s_rounded_white"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/margin_10"android:layout_marginBottom="@dimen/margin_10"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="@dimen/size_18"android:textStyle="bold"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="@dimen/padding_10"><TextViewandroid:id="@+id/tv_warning"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="@android:color/holo_red_dark"android:textSize="@dimen/size_14"/><TextViewandroid:id="@+id/tv_info"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/margin_10"android:textColor="@android:color/black"android:textSize="@dimen/size_14"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/margin_10"android:layout_marginBottom="@dimen/margin_10"android:gravity="center"android:orientation="horizontal"android:padding="@dimen/padding_10"><Buttonandroid:id="@+id/btn_cancel"android:layout_width="110dp"android:layout_height="40dp"android:layout_marginRight="25dp"android:background="@drawable/button_gray_l_rounded_selector"android:textColor="@android:color/black"android:textSize="@dimen/size_14"/><Buttonandroid:id="@+id/btn_confirm"android:layout_width="110dp"android:layout_height="40dp"android:background="@drawable/button_green_l_rounded_selector"android:textColor="@android:color/white"android:textSize="@dimen/size_14"/></LinearLayout></LinearLayout></LinearLayout>

3、定义CustomDialog样式文件:custom_dialog

<stylename="custom_dialog"parent="@android:style/Theme.Dialog"><itemname="android:windowFrame">@null</item><itemname="android:windowIsFloating">true</item><itemname="android:windowIsTranslucent">true</item><itemname="android:windowNoTitle">true</item><itemname="android:background">#00000000</item><itemname="android:windowBackground">@color/transparent</item><itemname="android:backgroundDimEnabled">true</item></style>

4、定义其中按钮样式:button_green_l_rounded_selector和button_gray_l_rounded_selector

<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:state_pressed="true"><shapeandroid:shape="rectangle"><strokeandroid:color="@android:color/transparent"android:width="0dp"></stroke><gradientandroid:angle="180"android:endColor="@color/button_green"android:startColor="@color/button_green"></gradient><cornersandroid:radius="50dp"></corners></shape></item><itemandroid:state_focused="true"><shapeandroid:shape="rectangle"><strokeandroid:color="@android:color/transparent"android:width="0dp"></stroke><gradientandroid:angle="180"android:endColor="@color/button_green"android:startColor="@color/button_green"></gradient><cornersandroid:radius="50dp"></corners></shape></item><itemandroid:state_pressed="false"><shapeandroid:shape="rectangle"><strokeandroid:color="@android:color/transparent"android:width="0dp"></stroke><gradientandroid:angle="0"android:endColor="@color/button_green"android:startColor="@color/button_green"></gradient><cornersandroid:radius="50dp"></corners></shape></item><itemandroid:state_focused="false"><shapeandroid:shape="rectangle"><strokeandroid:color="@android:color/transparent"android:width="0dp"></stroke><gradientandroid:angle="0"android:endColor="@color/button_green"android:startColor="@color/button_green"></gradient><cornersandroid:radius="50dp"></corners></shape></item></selector>

5、具体使用

privatevoidshowDialog(){OnClickListeneronCancelClickListener=newOnClickListener(){@OverridepublicvoidonClick(Viewv){MyDialog.showToast(WarehouseAddActivity.this,"取消");}};OnClickListeneronConfimClickListener=newOnClickListener(){@OverridepublicvoidonClick(Viewv){MyDialog.showToast(WarehouseAddActivity.this,"确认");}};showInfoDialog("","请点击确认进行操作","取消",onCancelClickListener,"确认",onConfimClickListener);}protectedvoidshowInfoDialog(Stringwaring,Stringinfo,StringcancelText,OnClickListenercancelOnClick,StringconfirmText,OnClickListenerconfirmOnClick){CustomDialog.Builderbuilder=newCustomDialog.Builder(this);builder.setTitle("提示");builder.setWarning(waring);builder.setInfo(info);builder.setButtonCancel(cancelText,cancelOnClick);builder.setButtonConfirm(confirmText,confirmOnClick);CustomDialogcustomDialog=builder.create();customDialog.show();}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Android怎么自定义弹出框的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么利用Java实现天气预报播报功能下一篇:

20 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18