a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

android自定義Dialog彈框和背景陰影顯示效果

2019-10-21 21:34:46
字體:
來源:轉載
供稿:網友

本文實例為大家分享了android自定義Dialog彈框和背景陰影顯示的具體代碼,供大家參考,具體內容如下

android,Dialog,彈框,背景陰影

首先需要自定義一個類,繼承Dialog

import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.widget.Button;import android.widget.TextView;import com.zhiziyun.dmptest.bot.R;/** * Created by Administrator on 2018/1/31. */public class CustomDialog extends Dialog {  private Button yes, no;//確定按鈕  private TextView titleTv;//消息標題文本  private TextView messageTv;//消息提示文本  private String titleStr;//從外界設置的title文本  private String messageStr;//從外界設置的消息文本  //確定文本和取消文本的顯示內容  private String yesStr, noStr;  private onNoOnclickListener noOnclickListener;//取消按鈕被點擊了的監聽器  private onYesOnclickListener yesOnclickListener;//確定按鈕被點擊了的監聽器  /**   * 設置取消按鈕的顯示內容和監聽   *   * @param str   * @param onNoOnclickListener   */  public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {    if (str != null) {      noStr = str;    }    this.noOnclickListener = onNoOnclickListener;  }  /**   * 設置確定按鈕的顯示內容和監聽   *   * @param str   * @param onYesOnclickListener   */  public void setYesOnclickListener(String str, onYesOnclickListener onYesOnclickListener) {    if (str != null) {      yesStr = str;    }    this.yesOnclickListener = onYesOnclickListener;  }  public CustomDialog(Context context) {    super(context, R.style.Dialog_Msg);  }  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.dialog_custom);    //按空白處不能取消動畫    setCanceledOnTouchOutside(false);    //初始化界面控件    initView();    //初始化界面數據    initData();    //初始化界面控件的事件    initEvent();  }  /**   * 初始化界面的確定和取消監聽器   */  private void initEvent() {    //設置確定按鈕被點擊后,向外界提供監聽    yes.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (yesOnclickListener != null) {          yesOnclickListener.onYesClick();        }      }    });    no.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (noOnclickListener != null) {          noOnclickListener.onNoClick();        }      }    });  }  /**   * 初始化界面控件的顯示數據   */  private void initData() {    //如果用戶自定了title和message    if (titleStr != null) {      titleTv.setText(titleStr);    }    if (messageStr != null) {      messageTv.setText(messageStr);    }    //如果設置按鈕的文字    if (yesStr != null) {      yes.setText(yesStr);    }  }  /**   * 初始化界面控件   */  private void initView() {    yes = (Button) findViewById(R.id.yes);    no = (Button) findViewById(R.id.no);    titleTv = (TextView) findViewById(R.id.title);    messageTv = (TextView) findViewById(R.id.message);  }  /**   * 從外界Activity為Dialog設置標題   *   * @param title   */  public void setTitle(String title) {    titleStr = title;  }  /**   * 從外界Activity為Dialog設置dialog的message   *   * @param message   */  public void setMessage(String message) {    messageStr = message;  }  /**   * 設置確定按鈕和取消被點擊的接口   */  public interface onYesOnclickListener {    public void onYesClick();  }  public interface onNoOnclickListener {    public void onNoClick();  }  @Override  public void show() {    super.show();    /**     * 設置寬度全屏,要設置在show的后面     */    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();    layoutParams.width= ViewGroup.LayoutParams.MATCH_PARENT;    layoutParams.height= ViewGroup.LayoutParams.MATCH_PARENT;    getWindow().getDecorView().setPadding(0, 0, 0, 0);    getWindow().setAttributes(layoutParams);  }}

這是實體類中的style:

<style name="custom_dialog_style" parent="android:Theme.Dialog">    <item name="android:windowFrame">@null</item>    <item name="android:windowIsFloating">true</item>    <item name="android:windowIsTranslucent">false</item>    <item name="android:windowNoTitle">true</item><!--除去title-->    <item name="android:backgroundDimEnabled">true</item><!--半透明-->    <item name="android:windowBackground">@color/transparent</item><!--除去背景色-->    <item name="android:radius">10dp</item></style>

其中@color/transparent是一個透明色

<color name="transparent">#00000000</color>

然后是布局

 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="#A5000000">  <LinearLayout    android:layout_width="260dp"    android:layout_height="wrap_content"    android:layout_centerInParent="true"    android:background="@drawable/shape_dialog_msg"    android:orientation="vertical">    <TextView      android:id="@+id/title"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center"      android:layout_margin="15dp"      android:gravity="center"      android:text="消息提示"      android:textColor="@color/colorBlack"      android:textSize="@dimen/title_text_size" />    <TextView      android:id="@+id/message"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center"      android:layout_marginLeft="@dimen/padding_left_right4"      android:layout_marginRight="@dimen/padding_left_right4"      android:text="提示消息"      android:textColor="@color/colorBlack"      android:textSize="@dimen/textsizi3" />    <View      android:layout_width="match_parent"      android:layout_height="1px"      android:layout_marginTop="15dp"      android:background="#E4E4E4" />    <LinearLayout      android:layout_width="match_parent"      android:layout_height="@dimen/buttom_height"      android:orientation="horizontal">      <Button        android:id="@+id/no"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="@null"        android:gravity="center"        android:singleLine="true"        android:text="取消"        android:textColor="@color/blue"        android:textSize="@dimen/textsizi3" />      <Button        android:id="@+id/yes"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="@null"        android:gravity="center"        android:singleLine="true"        android:text="確 定"        android:textColor="@color/red"        android:textSize="@dimen/textsizi3" />    </LinearLayout>  </LinearLayout></RelativeLayout>

下面是shape_dialog_msg的代碼

<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">  <item android:state_pressed="false">    <shape android:shape="rectangle" >      <!-- 填充的顏色 前兩位是透明度-->      <solid android:color="#f7f6f6"></solid>      <!-- 設置按鈕的四個角為弧形 -->      <!-- android:radius 弧形的半徑 -->      <corners android:radius="8dip" />      <!-- padding:Button里面的文字與Button邊界的間隔 -->      <padding android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp" />    </shape>  </item></selector>

準備工作都做好了,下面就是如何使用了

//點擊彈出對話框   final CustomDialog customDialog = new CustomDialog(getActivity());    customDialog.setTitle("消息提示");    customDialog.setMessage("是否暫停廣告投放?");    customDialog.setYesOnclickListener("確定", new CustomDialog.onYesOnclickListener() {       @Override       public void onYesClick() {       //這里是確定的邏輯代碼,別忘了點擊確定后關閉對話框       customDialog.dismiss();        }    }); customDialog.setNoOnclickListener("取消", new CustomDialog.onNoOnclickListener() {@Override   public void onNoClick() {      customDialog.dismiss();       }      }); customDialog.show();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产不卡一区二区三区 | 色呦呦在线播放 | 久久999| 欧美视频三区 | 久久不卡 | 夜添久久精品亚洲国产精品 | 欧美成人第一页 | 夜添久久精品亚洲国产精品 | 亚洲二区在线 | 国产区福利 | 欧美日韩国产在线观看 | 日韩免费高清视频 | www.国产精品| 日韩在线视频中文字幕 | 天天干天天插 | 中文字幕在线视频网 | 天堂一区二区三区四区 | 九九综合 | 日韩一区电影 | 成人免费视屏 | 午夜精品久久久久久久久久久久久 | 一级a性色生活片久久毛片明星 | 日本午夜一区二区 | 激情久久久久 | 国产色在线 | 欧美精品免费在线观看 | 久久精品欧美一区二区三区麻豆 | 成人免费视频网址 | 欧美一区二区国产 | 国产亚洲精品久久久久动 | 国产无套精品久久久久久 | 日韩av入口 | 色在线免费视频 | 欧美一区二区三区视频在线 | 久久精品无码一区二区日韩av | 欧美成人午夜精品久久久 | 国产在线观看一区二区三区 | 欧美一区二区三区在线观看 | 日韩精品一区在线 | 婷婷色综合 | 亚洲六月丁香色婷婷综合久久 |