您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章给大家介绍怎么在Android中自定义一个扁平化对话框,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
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中自定义一个扁平化对话框就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。