自定義控件有段時間沒更新了,今天給大家?guī)硪粋€新的對話框樣式,本著用更少的代碼實現更豐富的功能。
由于對話框對用戶的操作有影響,所以目前app上的對話框用的已經比較少了,但還是有一些比較重要的信息提示需要使用對話框的樣式,例如版本更新,賬戶異地登陸等。
下面來看自定義對話框的樣式:

圖1:自定義提示對話框

圖2:自定義警告對話框

圖3:默認提示對話框

圖4:默認警告對話框
這里面帶來了兩種對話框的樣式,也是比較常見的。以上所有的背景顏色,文字顏色,以及按鈕的點擊效果都是可以自定義的。
下面分別看看四種對話框是如何實現的
圖1:
DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this) .setTitle("發(fā)現新版本V5.4.1") .setContent("Version5.4.1/n【更新默認表情】――同步最新表情,聊天更有趣/n" + "【資料卡大升級】――全新視覺設計,增加陌生人來源信息/n" + "【消息跳動優(yōu)化】――鼠標懸浮在消息列表上時順序不動,再也不怕點錯啦/n" + "【收藏預覽升級】――完善圖片瀏覽體驗,優(yōu)化網頁預覽效果/n" + "【更多體驗優(yōu)化】――群成員列表寬度可調;優(yōu)化天氣定位策略;優(yōu)化圖片查看器") .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的風格隨意改變顏色。當然了你也可以把代碼下載下來增加更豐富的功能。
源碼比較長,有興趣的童鞋可以點擊這里查看。
源碼中采用了建造者模式,可以方便鏈式調用,使代碼看起來更簡潔。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答