1. 程式人生 > >Android彈出圓角對話方塊

Android彈出圓角對話方塊

Android系統提供的對話方塊,預設是方的,很不美觀,一般我們都是自定義圓角對話方塊。下面看一下圓角對話方塊的簡單試用。

先上效果圖:


很簡單,就是activity上一個按鈕,點選按鈕彈出圓角對話方塊。

下面看程式碼:

最最重要的style:在values/style中新增:

 <style name="mydialog" parent="android:style/Theme.Dialog">
        <!-- 背景透明,設定圓角對話方塊必須設定背景透明,否則四角會有背景色小塊-->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 沒有標題 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 背景模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
    </style>
drawable/dialog_bg檔案:用shape寫圓角背景
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
   <corners android:radius="5dp"/>
   <solid android:color="@color/colorWhite" />
</shape>
dialog的佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="300dp"
              android:layout_height="wrap_content"
              android:minWidth="280dp"
              android:background="@drawable/dialog_bg"
              android:orientation="vertical">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="20sp"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="40dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="40dp"
        android:background="@drawable/edittext_bg"
        android:padding="10dp"
        android:singleLine="true"/>
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/colorGray"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/tv_cancel"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="取消"
            android:textSize="16sp"/>

        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@color/colorGray"/>

        <TextView
            android:id="@+id/tv_positive"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="確定"
            android:textSize="16sp"/>
    </LinearLayout>


</LinearLayout>

應用:activity中程式碼:
 //點選按鈕,彈出圓角對話方塊
    public void showDialog(View view) {
        mDialog = new Dialog(this,R.style.mydialog);
        Window window = mDialog.getWindow();
        View contentView = this.getLayoutInflater().inflate(R.layout.dialog, null);
        TextView tv_title = (TextView) contentView.findViewById(R.id.tv_title);
        TextView tv_cancel = (TextView) contentView.findViewById(R.id.tv_cancel);
        TextView tv_postive = (TextView) contentView.findViewById(R.id.tv_positive);
        mDialog.setContentView(contentView);
        tv_title.setText("標題");
        tv_cancel.setOnClickListener(this);
        tv_postive.setOnClickListener(this);
        mDialog.show();
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv_cancel:
                mDialog.dismiss();
                break;
            case R.id.tv_positive:
                //TO Do Something
                Toast.makeText(this,"確定",Toast.LENGTH_SHORT).show();
                mDialog.dismiss();
                break;
        }
    }



相關推薦

Android圓角對話方塊

Android系統提供的對話方塊,預設是方的,很不美觀,一般我們都是自定義圓角對話方塊。下面看一下圓角對話方塊的簡單試用。 先上效果圖: 很簡單,就是activity上一個按鈕,點選按鈕彈出圓角對話方塊。 下面看程式碼: 最最重要的s

android不依賴具體activityDialog對話方塊,即全域性性對話方塊

先說具體做法,原因在其後給出: 寫好Alter功能塊後,在alter.show()語句前加入: alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);   注:alter為AlertDialog型別物

實現對gridview刪除行時確認對話方塊的一種簡單方法

首先,在GridView的屬性對框話框中點選“Columns”進入它的“欄位”設計器。接著在“欄位”設計器中選擇以前已加上的那個CommandField“刪除”列,這時在它的屬性列表下會看到一個“將此它段轉換為 TemplateFied”的項,點選將它轉換為TemplateFied列。完後退出該欄位設計器,切

phpstorm IDEA 雙擊Shift鍵會 SearchEverywhere 對話方塊,如何取消這個功能

解決方法:一:Open lib/resources.jar/idea/PlatformActions.xml and remove or comment such line:   <action id="SearchEverywhere" class="com.intel

Layui關閉對話方塊--重新整理父介面

在畢設的開發中,新增使用者、新增許可權等等一些地方需要類似於bootstrap中的模態框。然而開發用的卻是layui 在layui中有彈出層可以實現其中的效果。 但是,一般用的時候都是提交後關閉視窗,重新整理父介面。這裡記錄一下方法 var index = parent.layer.getFrameIn

Android-窗AlterDialog對話方塊使用全解析

主要方法: setMessage() 設定對話方塊內容為簡單文字 setItems() 對話款內容為簡單列表項 setSingleChoiceItems() 對話方塊內容為單選列表項

jsp 頁面中點選刪除按鈕後確認對話方塊

<script type="text/javascript" language="javaScript"> function del(url){ if(confirm("確定要刪除該題目?")){ window.location.href = "delsele

如何在網頁上一個對話方塊顯示一些內容javascript

1.下載並引用js檔案 dialog.js 及其css檔案dialog.css <script language="javascript" type="text/javascript" src="jquery.min.js"></script> &

【Bootstrap】一個在當前網頁對話方塊,可以關閉,不用跳轉,非

使用彈窗在網頁中顯示簡訊息還行,雖然不那麼地友好。然而,彈窗對於如同網站服務條款的長資訊就無能為力的了。這是需要使用一個叫模態框modal的東西,並且在模態框裡面嵌入一個多行文字框textarea。 這個東西,如果要手工寫JavaScript程式碼就太難做了,但是使用Boo

JS模態對話方塊對話方塊嵌入網頁)

<html> <head> <title>JS彈出一個網頁對話方塊,後面全變灰,並不可用。</title> <meta http-equiv="Content-Type" content="text/html; char

Qt標準對話方塊的方法,並警告內容寫中文

‘參考網址: https://blog.csdn.net/zong596568821xp/article/details/78999311 警告:   警告 考慮使用中文: QMessageBox::warning(NULL, QStringLiteral("警告"), QString

iOS開發——ActionSheet的使用與選擇對話方塊

     在我們的iOS開發中,常會見到如下介面的需求:。【使用ActionSheet實現】(1)實現程式碼如下:#import "ViewController.h" @interface ViewController ()<UIActionSheetDelegate

如何取消WIN2008下應用報錯後對話方塊 程式已停止 要求關閉程式

在WIN2003下如果應用報錯後不會有任何提示,我這裡有看門狗會直接將DOWN掉的應用拉起來。但是在WIN2008下偶爾會應用DOWN掉後提示如下的對話方塊,此時看門狗不會去啟動應用,必須要手動點選關閉程式按鈕後看門狗才能把DOWN掉的應用拉起來。這樣就不能做到無人值守了。

MFC 非模態對話方塊對話方塊閃了一下就消失了

CTestDialog *pTestDlg = new CTestDialog(); pTestDlg->Create(IDD_DIALOG_TEST, this); pTestDlg->ShowWindow(SW_SHOW); ///下面三行錯誤 //

解決Adobe Flash Player安全性對話方塊

第一種方法: 在本地用IE開啟Flash動畫並擊點Flash中的連線時一般都會彈出Adobe Flash Player安全性對話方塊,這是Flash Player的一個安全機制,我們可以點選下圖中的“設定”按鈕來去除這個提示,這樣以後這個彈出視窗就不會再騷擾我們了。

jquery外掛封裝:div對話方塊

以前封裝了一個Div彈出的jquery外掛, jQuery特效之浮動div模式框,這個外掛封裝的原則追求最簡潔,只負責彈出的行為,不負責樣式。 而這次的封裝是基於上個外掛的封裝進行進一步的封裝,封裝一個完整的浮動div彈出外掛.先看效果圖: 優勢: -

點選按鈕button,一個對話方塊輸入資料

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/

安卓學習筆記(10)-自定義對話方塊

​ 之前學習彈出式對話方塊的時候,我們可以在AlertDialog中放置我們自己設計的佈局內容,如TextView,EditView,多選框,單選框等等,但是按鈕使用的都是其自帶的PositiveButton和NegativeButton,最多可使用三個按鈕

取消window下應用報錯後對話方塊程式已停止要求關閉程式對話方塊

在window 7中的程式,當程式有異常時,會彈出一個錯誤對話方塊,並且不手動關閉這個錯誤對話方塊,程式不會完全退出來,如下圖所示: 如果要禁用當程式出現異常時不彈出錯誤對話方塊只需要將以下注冊表

Android自定義圓角對話方塊

自定義對話方塊MyDialog類繼承Dialog類: package com.example.jjy.myapplication; import android.app.Dialog; import android.content.Context; import andr