Android编程自定义扁平化对话框示例

本文实例讲述了Android编程自定义扁平化对话框。分享给大家供大家参考,具体如下:

平时我们开发的大多数的Android、iOS的APP,它们的风格都是拟物化设计。如Android 4.X、iOS 7、WP8采用的是扁平化设计,可以看出扁平化设计是未来UI设计的趋势。其实扁平化设计要比拟物化设计要简单一点,扁平化设计更加的简约,给人视觉上更加舒服。

Shamoo想到在Android平台上弄一个扁平化的对话框。参考过一篇帖子,然后改了一下。

这个Demo比较简单,首先是一个dialog的布局文件,这个dialog的布局要实例化成对话框可以通过AlertDialog.Builder的setView方法,将LayoutInflater实例化的dialog布局设置对话框具体显示内容。效果图如下:

下面直接贴代码

DialogWindows.Java

package com.example.dialogwindows; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Toast; public class DialogWindows extends Activity { private Button button; private View dialogView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.btn); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Builder builder = myBuilder(DialogWindows.this); final AlertDialog dialog = builder.show(); //点击屏幕外侧,dialog不消失 dialog.setCanceledOnTouchOutside(false); Button btnOK = (Button) dialogView.findViewById(R.id.btn_ok); btnOK.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你点击了确定按钮", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); Button btnCancel = (Button) dialogView.findViewById(R.id.btn_cancel); btnCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你点击了取消按钮", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); ImageButton customviewtvimgCancel = (ImageButton) dialogView.findViewById(R.id.btn_exit); customviewtvimgCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你点击了退出按钮", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); } }); } protected Builder myBuilder(Context context) { LayoutInflater inflater = getLayoutInflater(); AlertDialog.Builder builder = new AlertDialog.Builder(context); dialogView = inflater.inflate(R.layout.dialog, null); return builder.setView(dialogView); } }

dialog.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- 标题栏 --> <RelativeLayout android:id="@+id/dialog_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#1A94F9" > <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="10dp" android:text="@string/about" android:textColor="#000000" /> <ImageButton android:id="@+id/btn_exit" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/canceltor" /> </RelativeLayout> <!-- 显示的内容 --> <LinearLayout android:id="@+id/dialog_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@id/dialog_title" android:padding="20dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/author" android:textColor="#ffffff" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:linksClickable="true" android:text="@string/blog" android:textColor="#ffffff" /> </LinearLayout> <!-- 底部按钮 --> <LinearLayout android:id="@+id/customviewlayLink" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/dialog_msg" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingBottom="20dp" > <Button android:id="@+id/btn_ok" android:layout_width="fill_parent" android:layout_height="40dp" android:background="@drawable/linkbtnbged" android:linksClickable="true" android:layout_weight="1" android:layout_marginRight="10dp" android:text="@string/btn_ok" /> <Button android:id="@+id/btn_cancel" android:layout_width="fill_parent" android:layout_height="40dp" android:linksClickable="true" android:background="@drawable/linkbtnbged" android:text="@string/btn_cancel" android:layout_marginLeft="10dp" android:layout_weight="1" /> </LinearLayout> </RelativeLayout>

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/show_dialog" /> </RelativeLayout>

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

时间: 2024-10-11 01:19:18

Android编程自定义扁平化对话框示例的相关文章

Android编程自定义title bar(标题栏)示例_Android

本文实例讲述了Android编程自定义title bar(标题栏)的方法.分享给大家供大家参考,具体如下: package com.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.Drawable; import andr

Android编程自定义title bar(标题栏)示例

本文实例讲述了Android编程自定义title bar(标题栏)的方法.分享给大家供大家参考,具体如下: package com.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.Drawable; import andr

Android编程自定义组件实例详解

本文实例讲述了Android编程自定义组件.分享给大家供大家参考,具体如下: 在Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成.其中,View类是所有UI组件的基类,而ViewGroup类是容纳这些UI组件的容器. 其本身也是View类的子类. 在实际开发中,View类还不足以满足程序所有的需求.这时,便可以通过继承View类来开发自己的组件. 开发自定义组件的步骤: 1.创建一个继承android.view.View类的View类,并且重写构造方法. 2

Android编程自定义Notification实例分析_Android

本文实例讲述了Android编程自定义Notification的用法.分享给大家供大家参考,具体如下: Notification是一种让你的应用程序在不使用Activity的情况下警示用户,Notification是看不见的程序组件警示用户有需要注意的事件发生的最好途径. 作为UI部分,Notification对移动设备来说是最适合不过的了.用户可能随时都带着手机在身边.一般来说,用户会在后台打开几个程序,但不会注意它们.在这样的情形下,当发生需要注意的事件时,能够通知用户是很重要的. Noti

Android编程自定义圆角半透明Dialog的方法

本文实例讲述了Android编程自定义圆角半透明Dialog的方法.分享给大家供大家参考,具体如下: 效果图如下: 只是在实例化的时候使用带样式的构造函数即可 new MyDialog(GameActivity.this, R.style.dialog); 在value文件夹中添加mydialogthemes.xml <?xml version="1.0″ encoding=" utf-8″?> <resources> <style name="

Android编程自定义进度条颜色的方法详解

本文实例讲述了Android编程自定义进度条颜色的方法.分享给大家供大家参考,具体如下: 先看效果图: 老是提些各种需求问题,我觉得系统默认的颜色挺好的,但是Pk不过,谁叫我们不是需求人员呢,改吧! 这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\ 下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml 找到xml后,进去找到: <style name="Widget.ProgressBar"&

Android编程模拟HOME键功能示例_Android

本文实例讲述了Android编程模拟HOME键功能的方法.分享给大家供大家参考,具体如下: 做一个类似于QQ按返回键并不销毁Activity的方法(即不调用Activity.finish(),系统不调用 onDestroy),而是类似于按Home键,让Activity类似于"暂停"(即只调用onPause,onDestroy). 代码如下: public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == Key

Android编程实现的重力感应示例代码_Android

本文实例讲述了Android编程实现的重力感应效果.分享给大家供大家参考,具体如下: android中的很多游戏的游戏都使用了重力感应的技术,就研究了一下重力感应 以屏幕的左下方为原点,箭头指向的方向为正.从-10到10,以浮点数为等级单位,想象以下情形: 手机屏幕向上(z轴朝天)水平放置的时侯,(x,y,z)的值分别为(0,0,10): 手机屏幕向下(z轴朝地)水平放置的时侯,(x,y,z)的值分别为(0,0,-10): 手机屏幕向左侧放(x轴朝天)的时候,(x,y,z)的值分别为(10,0,

Android编程实现的重力感应示例代码

本文实例讲述了Android编程实现的重力感应效果.分享给大家供大家参考,具体如下: android中的很多游戏的游戏都使用了重力感应的技术,就研究了一下重力感应 以屏幕的左下方为原点,箭头指向的方向为正.从-10到10,以浮点数为等级单位,想象以下情形: 手机屏幕向上(z轴朝天)水平放置的时侯,(x,y,z)的值分别为(0,0,10): 手机屏幕向下(z轴朝地)水平放置的时侯,(x,y,z)的值分别为(0,0,-10): 手机屏幕向左侧放(x轴朝天)的时候,(x,y,z)的值分别为(10,0,