国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義控件實現萬能的對話框

2019-10-23 18:34:26
字體:
來源:轉載
供稿:網友

自定義控件有段時間沒更新了,今天給大家帶來一個新的對話框樣式,本著用更少的代碼實現更豐富的功能。

由于對話框對用戶的操作有影響,所以目前app上的對話框用的已經比較少了,但還是有一些比較重要的信息提示需要使用對話框的樣式,例如版本更新,賬戶異地登陸等。
下面來看自定義對話框的樣式:

Android,對話框

圖1:自定義提示對話框

Android,對話框

圖2:自定義警告對話框

Android,對話框

圖3:默認提示對話框

Android,對話框

圖4:默認警告對話框

這里面帶來了兩種對話框的樣式,也是比較常見的。以上所有的背景顏色,文字顏色,以及按鈕的點擊效果都是可以自定義的。

下面分別看看四種對話框是如何實現的
圖1:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)    .setTitle("發現新版本V5.4.1")    .setContent("Version5.4.1/n【更新默認表情】——同步最新表情,聊天更有趣/n" +        "【資料卡大升級】——全新視覺設計,增加陌生人來源信息/n" +        "【消息跳動優化】——鼠標懸浮在消息列表上時順序不動,再也不怕點錯啦/n" +        "【收藏預覽升級】——完善圖片瀏覽體驗,優化網頁預覽效果/n" +        "【更多體驗優化】——群成員列表寬度可調;優化天氣定位策略;優化圖片查看器")    .setStyle(DialogM.STYLE_TIP)    .setPositiveButton("更新", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();        dialog.dismiss();      }    })    .setNegativeButton("取消", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();        dialog.dismiss();      }    });builder.create().show();

圖2:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)    .setTitle("Hello")    .setTitleBackColor(getResources().getColor(R.color.content))    .setTitleTextColor(getResources().getColor(R.color.mainColor))    .setAlertButtonBackColor(getResources().getColor(R.color.mainColor))    .setAlertButtonTextColor(getResources().getColor(android.R.color.white))    .setCanceledOnTouchOutside(false)    .setAlertButton("確定", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        dialog.dismiss();      }    })    .setContent("landptf");builder.create().show();

圖3:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)    .setContent("landptf")    .setStyle(DialogM.STYLE_TIP)    .setPositiveButton("submit", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();        dialog.dismiss();      }    })    .setNegativeButton("cancel", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();        dialog.dismiss();      }    });builder.create().show();

圖4:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)    .setAlertButton("", new DialogInterface.OnClickListener() {      @Override      public void onClick(DialogInterface dialog, int which) {        dialog.dismiss();      }    })    .setContent("landptf");builder.create().show();

圖3與圖4完全使用了默認的顏色,我在代碼里指定了紅色為主色調。

所有的操作都是通過鏈式調用,可以根據自己app的風格隨意改變顏色。當然了你也可以把代碼下載下來增加更豐富的功能。

源碼比較長,有興趣的童鞋可以點擊這里查看。
源碼中采用了建造者模式,可以方便鏈式調用,使代碼看起來更簡潔。

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 弥勒县| 祁门县| 苏州市| 土默特右旗| 东阳市| 澜沧| 福建省| 铁岭市| 大竹县| 伊通| 临漳县| 股票| 元朗区| 鄂托克前旗| 通榆县| 定西市| 紫云| 铜鼓县| 牡丹江市| 苏州市| 彭阳县| 铜山县| 封丘县| 陆良县| 东乡| 兴城市| 玉山县| 商城县| 桃江县| 江陵县| 兖州市| 陆河县| 荆州市| 隆德县| 肥西县| 普格县| 蒲城县| 玛沁县| 疏勒县| 四平市| 城市|