日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android自定義彈框樣式

瀏覽:149日期:2022-09-22 17:22:02

彈框樣式的自定義是通過改變v7包下的AlertDialog的Window對(duì)象的view及控制Window的寬高實(shí)現(xiàn)的。所有源碼如下,其中自定義View的寬度設(shè)置為手機(jī)屏幕寬度的82%。

import android.app.Dialog;import android.content.Context;import android.support.v7.app.AlertDialog;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.LinearLayout;import android.widget.TextView; import com.environment.protection.R;import com.environment.protection.util.CommonUtil; /** * 簡(jiǎn)單提示彈框改變樣式 * create by csp in 2019/1/31 */public class CustomDialog { private Context mContext; private String mTitle; private String mMessage; private String mPositiveText; private String mNegativeText; private boolean mCancelable=true; private boolean mShowOneBtn=false;//只顯示一個(gè)按鈕 private OnPositiveButtonClickListener mPositiveListener; private OnNegativeButtonClickListener mNegativeListener; private Dialog mDialog; /***描述:為dialog添加一個(gè)自定義的View @author csp 創(chuàng)建日期 :2019/11/14 17:00***/ private View mCustomView; private CustomDialog(Context context) { mContext = context; } public void show() { mDialog=showCustomSimpleDialog(mContext, mTitle, mMessage,mCustomView, mPositiveText,mPositiveListener,mNegativeText,mNegativeListener,mCancelable,mShowOneBtn); } public void cancel(){ if (mDialog!=null){ mDialog.cancel(); } } public static class Builder { private Context mContext; private String mTitle; private String mMessage; private String mPositiveText; private String mNegativeText; private OnPositiveButtonClickListener mPositiveListener; private OnNegativeButtonClickListener mNegativeListener; private boolean mCancelable=true; private boolean mShowOneBtn=false;//只顯示一個(gè)按鈕 private View mCustomView; public Builder setCustomView(View view){ this.mCustomView=view; return this; } public Builder(Context context) { this.mContext = context; } public Builder setTitle(String title) { this.mTitle = title; return this; } public Builder setMessage(String message) { this.mMessage = message; return this; } public Builder setPositiveText(String text) { this.mPositiveText = text; return this; } public Builder setNegativeText(String text) { this.mNegativeText = text; return this; } public Builder setCancelable(boolean cancelable){ this.mCancelable=cancelable; return this; } public Builder setShowOneBtn(boolean showOneBtn){ this.mShowOneBtn=showOneBtn; return this; } public Builder setOnPositiveButtonClickListener(OnPositiveButtonClickListener listener){ this.mPositiveListener=listener; return this; } public Builder setOnNegativeButtonClickListener(OnNegativeButtonClickListener listener){ this.mNegativeListener=listener; return this; } public CustomDialog build() { CustomDialog customDialog = new CustomDialog(mContext); customDialog.mTitle = this.mTitle; customDialog.mMessage = this.mMessage; customDialog.mPositiveText = this.mPositiveText; customDialog.mNegativeText = this.mNegativeText; customDialog.mPositiveListener=this.mPositiveListener; customDialog.mNegativeListener=this.mNegativeListener; customDialog.mCancelable=this.mCancelable; customDialog.mShowOneBtn=this.mShowOneBtn; customDialog.mCustomView=this.mCustomView; customDialog.show(); return customDialog; } } /** * 自定義彈框邏輯事件接口回調(diào)處理 */ public interface OnPositiveButtonClickListener { void onPositiveButtonClick(Dialog dialog); } public interface OnNegativeButtonClickListener { void onNegativeButtonClick(Dialog dialog); } /** * 簡(jiǎn)單提示彈框改變樣式 * @param context 上下文對(duì)象 * @param title 標(biāo)題 * @param msg 內(nèi)容 * @param customView 自定義View * @param positiveText 確認(rèn)按鈕文字 * @param negativeText 取消按鈕文字 * @param positiveListener 確認(rèn)按鈕監(jiān)聽回調(diào) * @param negativeListener 取消按鈕監(jiān)聽回調(diào) * @param cancelable 是否可以取消彈框 * @param showOneBtn 是否隱藏取消按鈕 */ public static Dialog showCustomSimpleDialog(Context context, String title, String msg,View customView, String positiveText,OnPositiveButtonClickListener positiveListener, String negativeText,OnNegativeButtonClickListener negativeListener, boolean cancelable, boolean showOneBtn) { AlertDialog.Builder builder = new AlertDialog.Builder(context); Dialog dialog = builder.show(); //是否可以取消 dialog.setCancelable(cancelable); Window window = dialog.getWindow(); View view = LayoutInflater.from(context).inflate(R.layout.dialog_simple_toast, null); TextView clickNegative = view.findViewById(R.id.click_negative); TextView clickPositive = view.findViewById(R.id.click_positive); TextView dialogTitle = view.findViewById(R.id.dialog_title); TextView dialogMsg = view.findViewById(R.id.dialog_msg); View clickLine = view.findViewById(R.id.click_line); LinearLayout dialogCustomViewContainer=view.findViewById(R.id.dialog_custom_view_container); if (customView!=null){ dialogMsg.setVisibility(View.GONE); dialogCustomViewContainer.setVisibility(View.VISIBLE); dialogCustomViewContainer.addView(customView); }else { dialogMsg.setVisibility(View.VISIBLE); //消息自定義 if (!TextUtils.isEmpty(msg)) { dialogMsg.setText(msg); } dialogCustomViewContainer.setVisibility(View.GONE); } //標(biāo)題自定義 if (!TextUtils.isEmpty(title)) { dialogTitle.setText(title); } //消息自定義 if (!TextUtils.isEmpty(msg)) { dialogMsg.setText(msg); } if (showOneBtn){ clickNegative.setVisibility(View.GONE);//只顯示一個(gè)按鈕,隱藏取消按鈕 clickLine.setVisibility(View.GONE); }else { clickNegative.setVisibility(View.VISIBLE); clickLine.setVisibility(View.VISIBLE); } //確認(rèn)按鈕自定義 if (!TextUtils.isEmpty(positiveText)) { clickPositive.setText(positiveText); } //取消按鈕自定義 if (!TextUtils.isEmpty(negativeText)){ clickNegative.setText(negativeText); } //取消 clickNegative.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.cancel(); //接口回調(diào) if (negativeListener!=null){ negativeListener.onNegativeButtonClick(dialog); } } }); //確認(rèn) clickPositive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.cancel(); //接口回調(diào) if (positiveListener!=null) { positiveListener.onPositiveButtonClick(dialog); } } }); if (window != null) { WindowManager.LayoutParams params = window.getAttributes(); params.width = CommonUtil.getPhoneWidth(context) * 82 / 100; window.setAttributes(params); window.setBackgroundDrawableResource(R.drawable.bg_white_corner_5); window.setContentView(view); } return dialog; }}

R.layout.dialog_simple_toast文件

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='wrap_content' android:background='@color/white' android:orientation='vertical'> <TextView android: android:layout_width='match_parent' android:layout_height='wrap_content' android:paddingLeft='15dp' android:paddingTop='15dp' android:text='提示' android:textColor='@color/title_text_color' android:textSize='18sp' android:textStyle='bold' /> <LinearLayout android: android:layout_width='match_parent' android:layout_height='wrap_content' android:orientation='vertical' android:visibility='gone' android:paddingTop='5dp' android:paddingLeft='15dp' android:paddingRight='15dp' android:paddingBottom='5dp' > </LinearLayout> <TextView android: android:layout_width='match_parent' android:layout_height='wrap_content' android:paddingLeft='15dp' android:paddingRight='15dp' android:paddingTop='10dp' android:text='提示信息' android:minHeight='65dp' android:textColor='@color/content_text_color' android:textSize='14sp' /> <View android:layout_width='match_parent' android:layout_height='1dp' android:background='@color/divider' /> <LinearLayout android:layout_width='match_parent' android:layout_height='45dp' android:orientation='horizontal'> <TextView android: android:layout_width='0dp' android:visibility='visible' android:layout_height='match_parent' android:layout_weight='1' android:gravity='center' android:text='取消' android:textColor='@color/content_text_color' android:textSize='14sp' /> <View android: android:layout_width='1dp' android:layout_height='match_parent' android:background='@color/divider' /> <TextView android: android:layout_width='0dp' android:layout_height='match_parent' android:layout_weight='1' android:gravity='center' android:text='確認(rèn)' android:textColor='@color/app_blue' android:textSize='14sp' /> </LinearLayout></LinearLayout>

R.drawable.bg_white_corner_5資源文件

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android' > <solid android:color='@color/white' /> <corners android:radius='5dp' /> </shape>

部分顏色資源

<!--app自定義顏色--> <color name='app_background'>#fbfafa</color> <color name='app_blue'>#268EE5</color> <color name='tab_indicator'>#0dace6</color> <color name='app_orange'>#f18f45</color> <color name='app_red'>#f77453</color> <!--文字顏色--> <color name='title_text_color_dark'>#222222</color> <color name='title_text_color'>#333333</color> <color name='content_text_color'>#666666</color> <color name='hint_text_color'>#999999</color> <color name='hint_text_color_light'>#aaaaaa</color> <!--分割線顏色--> <color name='divider_dark'>#e2e2e2</color> <color name='divider'>#e6e6e6</color> <color name='divider_light'>#eeeeee</color>

使用方式如下:鏈?zhǔn)秸{(diào)用,可查看源碼自己選擇使用。

CustomDialog.Builder builder=new CustomDialog.Builder(mContext); builder.setTitle('自定義彈框')//默認(rèn)為“提示” .setMessage('自定義內(nèi)容') .setNegativeText('自定義取消文字')//默認(rèn)為“取消” .setPositiveText('自定義確認(rèn)文字')//默認(rèn)為 “確認(rèn)” .setOnPositiveButtonClickListener(new CustomDialog.OnPositiveButtonClickListener() { @Override public void onPositiveButtonClick(Dialog dialog) { ToastUtil.makeText(mContext,'自定義確認(rèn)按鈕監(jiān)聽邏輯處理'); } }) .setOnNegativeButtonClickListener(new CustomDialog.OnNegativeButtonClickListener() { @Override public void onNegativeButtonClick(Dialog dialog) { ToastUtil.makeText(mContext,'自定義取消按鈕監(jiān)聽邏輯處理'); } }) .setCancelable(false)//默認(rèn)true .build();

效果圖如下,使用者可按照實(shí)際需要自定義xml文件進(jìn)行更改:

Android自定義彈框樣式

Android自定義彈框樣式

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av资源亚洲| 99国产精品| 久久高清国产| 精品久久不卡| 欧美1区2区3| 国产剧情在线观看一区| 日韩高清三区| 91亚洲精品视频在线观看| 日韩精彩视频在线观看| 日韩中文字幕视频网| 综合欧美精品| 日韩不卡一二三区| 亚久久调教视频| 欧美在线精品一区| 欧美片网站免费| 国产精品麻豆成人av电影艾秋| 国产欧美日韩免费观看| 国产精品4hu.www| 久久久久久久久成人| 久久精品国产999大香线蕉| 精品少妇av| 成人福利av| 欧美性感美女一区二区 | 亚洲作爱视频| 中文精品电影| 国产视频一区二| 精品成人18| 日韩欧美少妇| 国产精品日本欧美一区二区三区| 石原莉奈在线亚洲二区| 日韩中文字幕无砖| 日本综合视频| 久久爱www.| 亚洲精品一区三区三区在线观看| 国产在线成人| 亚洲人成亚洲精品| 国产高清视频一区二区| 成人国产精品| 日韩一级精品| 国产精品香蕉| 欧美成a人免费观看久久| 久久亚洲电影| 欧美91在线|欧美| 午夜精品久久久久久久久久蜜桃| 午夜欧美精品| 国产欧美成人| 成人啊v在线| 亚洲精品1区| 久久国产精品免费精品3p | 国产精品欧美在线观看| 国产精品久久观看| 国产亚洲综合精品| 国产精品日韩精品中文字幕| 999久久久亚洲| 日韩一区二区三区精品| 国产一区二区精品福利地址| 红桃视频国产一区| 国产精品九九| 欧美女激情福利| 国产精品a级| 欧美精品一区二区久久| 国产日产一区| 亚洲精品一区二区妖精| 欧美精品1区| 男女激情视频一区| 天堂av在线| 久久国产乱子精品免费女| 性欧美69xoxoxoxo| 日韩成人免费| 日韩一区二区三区在线看| 激情综合自拍| 国产精品毛片久久| 国产欧美日韩精品一区二区三区| 亚洲欧美视频| 久久精品免费一区二区三区| 欧美在线黄色| 伊人久久成人| 欧美aa在线视频| 丝袜美腿亚洲一区| 国产精品亚洲欧美日韩一区在线| 日韩精品电影| 天堂俺去俺来也www久久婷婷| 日本国产精品| 日韩av字幕| 国产精品字幕| 日韩av中文在线观看| 91精品蜜臀一区二区三区在线 | 国产一区日韩一区| 日韩在线网址| 久久夜夜操妹子| 青青国产91久久久久久| 韩国精品主播一区二区在线观看 | 久久精品国产久精国产| 久久av在线| 精品国产乱码久久久| 久久性天堂网| 久久久成人网| 国产伦精品一区二区三区千人斩| 性欧美xxxx免费岛国不卡电影| 中文字幕中文字幕精品| 一区二区三区网站| 中文字幕在线高清| 日本aⅴ免费视频一区二区三区| 999精品一区| 久久只有精品| 日本不卡一区二区三区| 欧美亚洲精品在线| 精品资源在线| 蘑菇福利视频一区播放| 色爱综合网欧美| 欧美精品影院| 免费日韩视频| 亚洲特级毛片| 91亚洲一区| 国产欧美日韩视频在线| 亚洲免费黄色| 免费污视频在线一区| 老鸭窝一区二区久久精品| 亚洲免费一区二区| 99视频精品| 99久久激情| 成人一区而且| 国产精品伦一区二区| 亚洲精品少妇| 午夜电影亚洲| 欧美sm一区| 91大神在线观看线路一区| 婷婷综合网站| 国产精品地址| 欧美精品中文字幕亚洲专区| 欧美日韩四区| 久久中文字幕二区| 麻豆mv在线观看| 国产精品一区二区三区四区在线观看| 免费在线欧美视频| 免费不卡中文字幕在线| 中文字幕系列一区| 热三久草你在线| 国产福利91精品一区二区| 国产亚洲高清在线观看| 日韩精品一区二区三区中文在线| 一区二区三区四区精品视频| 亚洲欧美网站| 一本综合精品| 日韩国产一二三区| 亚洲人成网77777色在线播放| 日本一区中文字幕| 青青在线精品| 欧美在线黄色| 国产免费av一区二区三区| 久久av综合| 欧美日韩精品一区二区三区视频| 国产麻豆一区二区三区精品视频| 日韩国产在线不卡视频| 日韩国产在线不卡视频| 欧美在线精品一区| 国产精品一区毛片| 欧美黄页在线免费观看| 国产精品v一区二区三区| 国产精品亚洲人成在99www| 国产精品sm| 日韩激情视频网站| 国产精品一区免费在线| 久久婷婷国产| 国产一区二区三区久久久久久久久| 成人精品视频| 日韩大片在线| 欧美中文字幕| 少妇高潮一区二区三区99| 日韩av一级片| 国产丝袜一区| 精品久久亚洲| 蜜臀久久精品| 夜鲁夜鲁夜鲁视频在线播放| 香蕉精品久久| 综合国产在线| 亚洲精品福利| 国产精品啊v在线| 国产不卡人人| 国产毛片一区| 日韩一二三区在线观看| 美女性感视频久久| 日韩欧美看国产| 狠狠操综合网| 亚欧成人精品| 国产91在线播放精品| 成人看片网站| 日本欧洲一区二区| 国产欧美丝祙| 日韩中文在线电影| 蜜臀久久久久久久| 日韩在线成人| 国产精品igao视频网网址不卡日韩 | 青青在线精品| 9999国产精品| av不卡在线| 国产精品三p一区二区| 日韩综合精品| 日本亚洲三级在线| 精品视频在线观看网站|