本文实例讲述了Android编程使用android-support-design实现MD风格对话框功能。分享给大家供大家参考,具体如下:

首先上效果图:
测试设备为红米Note,系统为Android 4.4.4
说明:
1.在新版的android.support.v7包中,Google提供了一个新的AlertDialog类,即android.support.v7.app.AlertDialog。使用该类中的Builder可以直接创建Material Design风格的对话框,而不需要再借助于第三方库。(即第一张图的效果)
2.遗憾的是,上述第二张图中转圈样式的ProgressBar暂无法使用系统组件。本例中使用的第三方库来自:
compile 'com.github.rahatarmanahmed:circularprogressview:2.4.0'
3.代码不多,并已简单封装为工具类:
package com.sinatj.demo.utils;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.sinatj.demo.R;
/**
* UiUtil.
* Created by admin on 15-12-22.
*/
public class UiUtil {
private static AlertDialog showDialog(Context context, String title, String message, View contentView,
String positiveBtnText, String negativeBtnText,
DialogInterface.OnClickListener positiveCallback,
DialogInterface.OnClickListener negativeCallback,
boolean cancelable) {
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AppCompatAlertDialogStyle);
builder.setTitle(title == null ? "提示" : title);
if (message != null) {
builder.setMessage(message);
}
if (contentView != null) {
builder.setView(contentView);
}
if (positiveBtnText != null) {
builder.setPositiveButton(positiveBtnText, positiveCallback);
}
if (negativeBtnText != null) {
builder.setNegativeButton(negativeBtnText, negativeCallback);
}
builder.setCancelable(cancelable);
return builder.show();
}
//普通对话框
public static AlertDialog showSimpleDialog(Context context, String title, String message,
String positiveBtnText, String negativeBtnText,
DialogInterface.OnClickListener positiveCallback,
DialogInterface.OnClickListener negativeCallback,
boolean cancelable) {
return showDialog(context, title, message, null, positiveBtnText, negativeBtnText, positiveCallback, negativeCallback, cancelable);
}
//带ProgressBar的对话框
public static AlertDialog showProgressDialog(Context context, String title, String message,
String positiveBtnText, String negativeBtnText,
DialogInterface.OnClickListener positiveCallback,
DialogInterface.OnClickListener negativeCallback,
boolean cancelable) {
View view = LayoutInflater.from(context).inflate(R.layout.circular_progressbar, null);
if (message != null) {
final TextView messageTv = (TextView) view.findViewById(R.id.progressbar_msg);
messageTv.setText(message);
}
return showDialog(context, title, null, view, positiveBtnText, negativeBtnText, positiveCallback, negativeCallback, cancelable);
}
}
4.circular_progressbar布局文件,由一个第三方库提供的ProgressBar和一个TextView组成:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp">
<com.github.rahatarmanahmed.cpv.CircularProgressView
android:layout_width="40dp"
android:layout_height="40dp"
android:orientation="vertical"
app:cpv_animAutostart="true"
app:cpv_indeterminate="true" />
<TextView
android:id="@+id/progressbar_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_gravity="center_vertical"
android:textSize="16sp"
android:textColor="#111111"
android:text="@string/main_waiting"/>
</LinearLayout>
5.AppCompatAlertDialogStyle为对话框的样式,可指定文字颜色、按钮颜色、背景色等。(本例中使用的时默认值)
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--对话框按钮文字颜色-->
<item name="colorAccent">#FFCC00</item>
<!--对话框内容文字颜色-->
<item name="android:textColorPrimary">#FFFFFF</item>
<!--对话框背景色-->
<item name="android:background">#5fa3d0</item>
</style>
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》、《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# android-support-design
# MD风格
# 对话框
# Android Support Library 标题栏(Toolbar)滚动效果实现方法
# Android studio 出现 Unsupported major.minor version
# AndroidSDK Support自带夜间、日间模式切换详解
# Android Support Annotations资料整理
# 第三方
# 背景色
# 的是
# 本例
# 进阶
# 操作技巧
# 暂无
# 相关内容
# 不多
# 感兴趣
# 给大家
# 可以直接
# 更多关于
# 所述
# 图中
# 程序设计
# 并已
# 要再
# 默认值
相关文章:
香港服务器网站卡顿?如何解决网络延迟与负载问题?
建站之星备案流程有哪些注意事项?
常州自助建站工具推荐:低成本搭建与模板选择技巧
,巨量百应是干嘛的?
C++如何编写函数模板?(泛型编程入门)
宝塔建站后网页无法访问如何解决?
简历在线制作网站免费版,如何创建个人简历?
网站制作员失业,怎样查看自己网站的注册者?
魔方云NAT建站如何实现端口转发?
如何登录建站主机?访问步骤全解析
如何配置FTP站点权限与安全设置?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
实例解析Array和String方法
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
婚礼视频制作网站,学习*后期制作的网站有哪些?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
开封网站制作公司,网络用语开封是什么意思?
如何选择CMS系统实现快速建站与SEO优化?
如何在阿里云虚拟主机上快速搭建个人网站?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何通过虚拟机搭建网站?详细步骤解析
,有什么在线背英语单词效率比较高的网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何获取开源自助建站系统免费下载链接?
如何高效配置IIS服务器搭建网站?
电商网站制作公司有哪些,1688网是什么意思?
网站制作模板下载什么软件,ppt模板免费下载网站?
制作营销网站公司,淘特是干什么用的?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
太平洋网站制作公司,网络用语太平洋是什么意思?
建站主机是什么?如何选择适合的建站主机?
建站主机与服务器功能差异如何区分?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
自助网站制作软件,个人如何自助建网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
宝塔面板创建网站无法访问?如何快速排查修复?
北京网站制作网页,网站升级改版需要多久?
如何用虚拟主机快速搭建网站?详细步骤解析
如何零成本快速生成个人自助网站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何通过FTP服务器快速搭建网站?
简单实现Android文件上传
建站之星后台管理系统如何操作?
建站之星会员如何解锁更多建站功能?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
*请认真填写需求信息,我们会在24小时内与您取得联系。