Android编程使用android-support-design实现MD风格对话框功能示例

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • Android Support Annotations资料整理

    Android Support Annotations              这里对Android Support Annotations注解的资料做了详细整理大家可以参考下: 注解 解释 @AnimatorRes 表示该参数.字段或者函数返回值应该是一个 Animator 类型的资源 @AnimRes 表示该参数.字段或者函数返回值应该是一个 Anim 类型的资源 @AnyRes 表示该参数.字段或者函数返回值应该是一个任意类型的资源 @AnyThred 表示被注解的方法可以在任何线程中被

  • Android studio 出现 Unsupported major.minor version 52.0解决办法

    Android studio 出现 Unsupported major.minor version 52.0解决办法 最近更新了Android studio 之后,出现了Error:Java.lang.UnsupportedClassVersionError:com/android/dx/command/Main : Unsupported major.minor version 52.0 异常, 一.这是因为 compileSdKVersion 和 buildToosVersion 版本对不上

  • Android Support Library 标题栏(Toolbar)滚动效果实现方法

    首先来个效果图  布局文件代码 在布局文件中,CoordinatorLayout作为布局文件根节点,AppBarLayout包含在CoordinatorLayout中,toolbar在AppBarLayout节点下include进来. <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="

  • AndroidSDK Support自带夜间、日间模式切换详解

    写这篇博客的目的就是教大家利用AndroidSDK自带的support lib来实现APP日间/夜间模式的切换,最近看到好多帖子在做关于这个日夜间模式切换的开源项目,其实AndroidSDK Support中已经有了非常好的支持了. 本文demo下载地址在文章的末尾,看完文档如果还不能实现可以下载玩玩. -------------------------------------------------------------------------------- 效果演示 左是Android 4

  • Android编程使用android-support-design实现MD风格对话框功能示例

    本文实例讲述了Android编程使用android-support-design实现MD风格对话框功能.分享给大家供大家参考,具体如下: 首先上效果图:   测试设备为红米Note,系统为Android 4.4.4 说明: 1.在新版的android.support.v7包中,Google提供了一个新的AlertDialog类,即android.support.v7.app.AlertDialog.使用该类中的Builder可以直接创建Material Design风格的对话框,而不需要再借助于

  • Android编程实现通讯录中联系人的读取,查询,添加功能示例

    本文实例讲述了Android编程实现通讯录中联系人的读取,查询,添加功能.分享给大家供大家参考,具体如下: 先加二个读和写权限: <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 具体代码: package com.ebo

  • Android编程实现短信收发及语音播报提示功能示例

    本文实例讲述了Android编程实现短信收发及语音播报提示功能.分享给大家供大家参考,具体如下: 发送短信功能界面 /** * 发送短信Demo * * @description: * @author ldm * @date 2016-4-22 上午9:07:53 */ public class SmsActivity extends Activity implements OnClickListener { public static final String SMS_RECIPIENT_EX

  • Android编程使用LinearLayout和PullRefreshView实现上下翻页功能的方法

    本文实例讲述了Android编程使用LinearLayout和PullRefreshView实现上下翻页功能的方法.分享给大家供大家参考,具体如下: 前看过网易云阅读客户端,里面的文章可以实现上下拉动实现上下翻页的效果,感觉体验效果很不错. 公司新版本项目的开发中也要求实现类似的效果,不过还好项目需求里面可以提前知道需要实现上下拉动翻页的总的页数.如果像网易那种不提前知道总的页数感觉控制好LinearLayout里面的childView应该也可以达到效果. 好记性不如烂笔头,先写下我提前知道总页

  • Android编程实现显示在标题上的进度条功能【附源码下载】

    本文实例讲述了Android编程实现显示在标题上的进度条功能.分享给大家供大家参考,具体如下: 今天我们来学习一下Android中显示在Activity标题上的进度条.在这个例子当中我们还能够学习到很多关于AsyncTask的知识. (1)准备用于显示到界面上的四张图片img01,img02,img03,img04 (2)在Activity的布局文件activity_main.xml中只定义一个线性布局LinearLayout,并为其设置一个id,代码如下: <LinearLayout xmln

  • Android编程实现使用handler在子线程中更新UI示例

    本文实例讲述了Android编程实现使用handler在子线程中更新UI.分享给大家供大家参考,具体如下: MainActivity代码: package com.example.ui; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextV

  • Android编程下拉菜单spinner用法小结(附2则示例)

    本文较为详细的总结分析了Android编程下拉菜单spinner用法.分享给大家供大家参考,具体如下: Spinner控件也是一种列表类型的控件,它的继承关系如下: java.lang.Object    ↳ android.view.View      ↳ android.view.ViewGroup        ↳ android.widget.AdapterView<Textends android.widget.Adapter>          ↳ android.widget.A

  • Android编程实现使用Intent传输包含自定义类的ArrayList示例

    本文实例讲述了Android编程实现使用Intent传输包含自定义类的ArrayList.分享给大家供大家参考,具体如下: 前言 之前项目中通过Intent只是传输简单的字符串,这次因为需要在前一个页面联网获取对象数据,然后在下一个页面使用,所以考虑到使用Intent传输包含自定义类的ArrayList. Serializable Java的对象序列化指的是将那些实现了Serializable接口的对象转换成一个字节序列,并且能在需要的时候再将这个字节序列完全恢复为之前的对象. 想实现对象的序列

  • Android编程中File文件常见存储与读取操作demo示例

    本文实例讲述了Android编程中File文件常见存储与读取操作.分享给大家供大家参考,具体如下: MainActivity文件代码如下: package example.com.myapplication; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; im

  • Android编程仿Iphone拖动相片特效Gallery的简单应用示例

    本文实例讲述了Android编程仿Iphone拖动相片特效Gallery的简单应用.分享给大家供大家参考,具体如下: Step 1:准备图片素材. 将icon2,icon3,icon4,icon5,icon6五张图片导入res/drawable里加上icon.png本身一共有6张图片. Step 2:新建Android工程,命名为GalleryDemo. Step 3:设计UI,修改main.xml代码如下: <?xml version="1.0" encoding="

随机推荐