导航:首页 > 操作系统 > android创建dialog

android创建dialog

发布时间:2022-06-04 12:35:34

android创建dialog时如何去掉模糊的背景

有函数啊 可以查查啊

例如:
一:控制Dialog 的背景方法:1.定义一个无背景主题主题<!--去掉背景Dialog-->
<style name="NobackDialog"
parent="@android:style/Theme.Dialog">
<item
name="android:windowBackground">@color/no_back</item>
</style>
2.创建Dialog
dialog = new Dialog(this,R.style.dialog);
dialog.setContentView(R.layout.dialog_loading);

or:
dialog = new Dialog(this,R.style.NobackDialog);
LayoutInflater mInflater = LayoutInflater.from(this);
View dialogProcessBar =
mInflater.inflate(R.layout.dialog_loading,null);
dialog.setView(dialogProcessBar,0, 0, 0, 0);

二:控制Dialog 以及内部控件的背景方法:
dialog = new Dialog(this,R.style.dialog);
WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
// 模糊度getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
dialog.getWindow().setAttributes(lp);
lp.alpha=0.5f;(0.0-1.0)//透明度,黑暗度为lp.dimAmount=1.0f;

三:去掉边框、title 等参数
<resources>
<style name="dialog" parent="@android:style/Theme.Dialog">
<item
name="android:windowFrame">@null</item><!--边框-->
<item
name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item
name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item>
<item
name="android:background">@android:color/black</item>
<item name="android:windowBackground">@null</item>
<item
name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>
</resources>

② android如何创建带3个按钮的对话框

1.先在布局界面上,拖进来一个按钮控件,并设置显示的文字,记得保存(Ctrl+S)

之后在代码界面上定义该按钮。

2.新建一个按钮点击的方法。
onClick(View v) :点击之后的动作。

3.设置按钮的点击事件指向我们新建的点击方法。
setOnClickListener:设置点击之后触发的动作。

4.在onClick里添加弹出对话框的代码。
AlertDialog:一个对话框类。
MainActivity.this:对话框显示的位置。
setTitle:设置标题。
setMessage:设置内容。
setPositiveButton:设置对话框的按钮。
show():显示对话框。

至此所有代码已经完成,编译并生成,在Android安卓虚拟机上显示如下。

③ android怎样自定义dialog

Android开发过程中,常常会遇到一些需求场景——在界面上弹出一个弹框,对用户进行提醒并让用户进行某些选择性的操作,
如退出登录时的弹窗,让用户选择“退出”还是“取消”等操作。
Android系统提供了Dialog类,以及Dialog的子类,常见如AlertDialog来实现此类功能。
一般情况下,利用Android提供的Dialog及其子类能够满足多数此类需求,然而,其不足之处体现在:
1. 基于Android提供的Dialog及其子类样式单一,风格上与App本身风格可能不太协调;
2. Dialog弹窗在布局和功能上有所限制,有时不一定能满足实际的业务需求。
本文将通过在Dialog基础上构建自定义的Dialog弹窗,以最常见的确认弹框为例。
本样式相对比较简单:上面有一个弹框标题(提示语),下面左右分别是“确认”和“取消”按钮,当用户点击“确认”按钮时,弹框执行
相应的确认逻辑,当点击“取消”按钮时,执行相应的取消逻辑。
首先,自定义弹框样式:

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:background="@drawable/dialog_bg"
6 android:orientation="vertical" >
7
8 <TextView
9 android:id="@+id/title"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:layout_gravity="center"
13 android:paddingTop="14dp"
14 android:textColor="@color/login_hint"
15 android:textSize="@dimen/text_size_18" />
16
17 <LinearLayout
18 android:layout_width="match_parent"
19 android:layout_height="wrap_content"
20 android:layout_marginBottom="14dp"
21 android:layout_marginLeft="20dp"
22 android:layout_marginRight="20dp"
23 android:layout_marginTop="30dp" >
24
25 <TextView
26 android:id="@+id/confirm"
27 android:layout_width="wrap_content"
28 android:layout_height="wrap_content"
29 android:layout_marginRight="10dp"
30 android:layout_weight="1"
31 android:background="@drawable/btn_confirm_selector"
32 android:gravity="center"
33 android:textColor="@color/white"
34 android:textSize="@dimen/text_size_16" />
35
36 <TextView
37 android:id="@+id/cancel"
38 android:layout_width="wrap_content"
39 android:layout_height="wrap_content"
40 android:layout_marginLeft="10dp"
41 android:layout_weight="1"
42 android:background="@drawable/btn_cancel_selector"
43 android:gravity="center"
44 android:textColor="@color/login_hint"
45 android:textSize="@dimen/text_size_16" />
46 </LinearLayout>
47
48 </LinearLayout>

然后,通过继承Dialog类构建确认弹框控件ConfirmDialog:

1 package com.corn.widget;
2
3 import android.app.Dialog;
4 import android.content.Context;
5 import android.os.Bundle;
6 import android.util.DisplayMetrics;
7 import android.view.LayoutInflater;
8 import android.view.View;
9 import android.view.Window;
10 import android.view.WindowManager;
11 import android.widget.TextView;
12
13 import com.corn.R;
14
15 public class ConfirmDialog extends Dialog {
16
17 private Context context;
18 private String title;
19 private String confirmButtonText;
20 private String cacelButtonText;
21 private ClickListenerInterface clickListenerInterface;
22
23 public interface ClickListenerInterface {
24
25 public void doConfirm();
26
27 public void doCancel();
28 }
29
30 public ConfirmDialog(Context context, String title, String confirmButtonText, String cacelButtonText) {
31 super(context, R.style.MyDialog);
32 this.context = context;
33 this.title = title;
34 this.confirmButtonText = confirmButtonText;
35 this.cacelButtonText = cacelButtonText;
36 }
37
38 @Override
39 protected void onCreate(Bundle savedInstanceState) {
40 // TODO Auto-generated method stub
41 super.onCreate(savedInstanceState);
42
43 init();
44 }
45
46 public void init() {
47 LayoutInflater inflater = LayoutInflater.from(context);
48 View view = inflater.inflate(R.layout.confirm_dialog, null);
49 setContentView(view);
50
51 TextView tvTitle = (TextView) view.findViewById(R.id.title);
52 TextView tvConfirm = (TextView) view.findViewById(R.id.confirm);
53 TextView tvCancel = (TextView) view.findViewById(R.id.cancel);
54
55 tvTitle.setText(title);
56 tvConfirm.setText(confirmButtonText);
57 tvCancel.setText(cacelButtonText);
58
59 tvConfirm.setOnClickListener(new clickListener());
60 tvCancel.setOnClickListener(new clickListener());
61
62 Window dialogWindow = getWindow();
63 WindowManager.LayoutParams lp = dialogWindow.getAttributes();
64 DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用
65 lp.width = (int) (d.widthPixels * 0.8); // 高度设置为屏幕的0.6
66 dialogWindow.setAttributes(lp);
67 }
68
69 public void setClicklistener(ClickListenerInterface clickListenerInterface) {
70 this.clickListenerInterface = clickListenerInterface;
71 }
72
73 private class clickListener implements View.OnClickListener {
74 @Override
75 public void onClick(View v) {
76 // TODO Auto-generated method stub
77 int id = v.getId();
78 switch (id) {
79 case R.id.confirm:
80 clickListenerInterface.doConfirm();
81 break;
82 case R.id.cancel:
83 clickListenerInterface.doCancel();
84 break;
85 }
86 }
87
88 };
89
90 }

在如上空间构造代码中,由于控件的"确认"和"取消"逻辑与实际的应用场景有关,因此,控件中通过定义内部接口来实现。

在需要使用此控件的地方,进行如下形式调用:

1 public static void Exit(final Context context) {
2 final ConfirmDialog confirmDialog = new ConfirmDialog(context, "确定要退出吗?", "退出", "取消");
3 confirmDialog.show();
4 confirmDialog.setClicklistener(new ConfirmDialog.ClickListenerInterface() {
5 @Override
6 public void doConfirm() {
7 // TODO Auto-generated method stub
8 confirmDialog.dismiss();
9 //toUserHome(context);
10 AppManager.getAppManager().AppExit(context);
11 }
12
13 @Override
14 public void doCancel() {
15 // TODO Auto-generated method stub
16 confirmDialog.dismiss();
17 }
18 });
19 }

调用中实现了此控件的内部接口,并赋给控件本身,以此在点击按钮时实现基于外部具体业务逻辑的函数回调。

④ 如何自定义Android Dialog的样式

Android 中自定义Dialog的样式,主要是通过自定义的xml,然后加载到dialog的背景中,如下步骤:

1、自定义Dialog

java">finalDialogdialog=newDialog(this,R.style.Theme_dialog);

2、窗口布局

ViewcontentView=LayoutInflater.from(this).inflate(R.layout.select_list_dialog,null);

3、把设定好的窗口布局放到dialog中

dialog.setContentView(contentView);

4、设定点击窗口空白处取消会话

dialog.setCanceledOnTouchOutside(true);

5、具体的操作

ListViewmsgView=(ListView)contentView.findViewById(R.id.listview_flow_list);

6、展示窗口

dialog.show();
例:
finalDialogdialog=newDialog(this,R.style.Theme_dialog);
ViewcontentView=LayoutInflater.from(this).inflate(R.layout.select_list_dialog,null);
dialog.setContentView(contentView);
dialog.setCanceledOnTouchOutside(true);
ListViewmsgView=(ListView)contentView.findViewById(R.id.listview_flow_list);
TextViewtitleText=(TextView)contentView.findViewById(R.id.title);
titleText.setText("请选择银行卡");
=(this,mBankcardList);
msgView.setAdapter(adapter);
msgView.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterViewparent,Viewview,intposition,longid){
//Toast.makeText(RechargeFlowToMobileActivity.this,
//position+"",0).show();
mSelectCard=mBankcardList.get(position);
Stringarea=mSelectCard.getBank_card();
mCardNumberText.setText(area);
dialog.dismiss();
}
});
ButtoncloseBtn=(Button)contentView.findViewById(R.id.close);
closeBtn.setClickable(true);
closeBtn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
dialog.dismiss();
}
});
dialog.show();

以上就是在Android开发自定义dialog样式的方法和步骤,android很多的控件都提供了接口或者方法进行样式的定义和修改。

⑤ android怎么定义有选择的dialog

第一个需求:简单的自定义dialog
需求:创建一个dialog,该dialog具备以下功能:
1.有一个窗口可以显示文章
2.根据需求显示
1)点击同意(不同意),触发对应的事件(同意的事件会弹出一个Toast,不同意则会关闭程序)
2)点击关闭,关闭dialog
1.在main.xml文件中设定一个按钮,点击会弹出dialog
View Code
<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:layout_width="100dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
android:id="@+id/btn"
android:background="@drawable/sl_btn_red" />
</RelativeLayout>2.创建dialog的内容布局,布局中设定了使用相对布局设定了三个按钮,其中两个一起出现(同意和不同意),另外一个单独出现(关闭)默认是两个出现
View Code
private TextView btnClose = null;
private TextView btnAgree = null;
private TextView btnDisagree = null;
private WebView mWebView = null;
public MyDialog(Context context) {
super(context, R.style.item_tnc_dialog);
setCancelable(false); // 阻止返回键的响应
setContentView(R.layout.dialog_view);
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
setUpView();
}
private void setUpView() {
mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);
btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);
btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);
btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);
btnClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
}
});
btnDisagree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
System.exit(0);
}
});
btnAgree.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(getContext(), "YOU SELECTED AGREE",
Toast.LENGTH_SHORT).show();
dismiss();

}
});
showDialog();
}
/** 加载webview的内容 */
public void showDialog() {

String localHtml = "file:///android_asset/los.html";

if (mWebView != null) {
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
mWebView.loadUrl(localHtml);
}
buttonsDisplayTwo(false);
}
/** 当true的时候,出现同意和不同意两个选项,反之是关闭选项 */
private void buttonsDisplayTwo(boolean two) {
btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);
btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);
btnClose.setVisibility(two ? View.GONE : View.VISIBLE);
}3.main.activity的代码就不写了。。直接写自定义的dialog代码

View Code
private TextView btnClose = null;
private TextView btnAgree = null;
private TextView btnDisagree = null;

private WebView mWebView = null;

public MyDialog(Context context) {
super(context, R.style.item_tnc_dialog);

setCancelable(false); // 阻止返回键的响应
setContentView(R.layout.dialog_view);
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
setUpView();

}
private void setUpView() {
mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);
btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);

btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);
btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);

btnClose.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
dismiss();
}
});

btnDisagree.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
dismiss();
System.exit(0);
}
});
btnAgree.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(getContext(), "YOU SELECTED AGREE",
Toast.LENGTH_SHORT).show();
dismiss();
}
});
showDialog();
}

/** 加载webview的内容 */
public void showDialog() {

String localHtml = "file:///android_asset/los.html";

if (mWebView != null) {
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
mWebView.loadUrl(localHtml);
}
buttonsDisplayTwo(false);
}
/** 当true的时候,出现同意和不同意两个选项,反之是关闭选项 */
private void buttonsDisplayTwo(boolean two) {
btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);
btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);
btnClose.setVisibility(two ? View.GONE : View.VISIBLE);
}

⑥ android开发,怎样点击一个按钮后在手机主界面添加一个dialog(或TextView等),里面能显示数据库的能容

你在主界面的XML里面先提前放一个TextView,刚才设置空白或者先隐藏.点了按钮以后,把TextView显示出来,再把数据库内容写入TextView里面.

阅读全文

与android创建dialog相关的资料

热点内容
说明wpf加密过程 浏览:142
java读取list 浏览:701
iis7gzip压缩 浏览:39
有什么安卓机打吃鸡好 浏览:597
三星u盘加密狗 浏览:473
php函数的返回值吗 浏览:586
国企稳定程序员 浏览:327
编程猫如何使用教程视频 浏览:218
安卓远端网页如何打日志 浏览:218
压缩flash大小 浏览:993
解压的玩具教程可爱版 浏览:366
哪个求职app比较靠谱 浏览:888
java的读法 浏览:59
nod32局域网服务器地址 浏览:1002
数码科技解压 浏览:235
新网的云服务器管理界面复杂吗 浏览:367
无人声解压强迫症视频 浏览:571
计算机编译运行 浏览:639
单片机嵌套 浏览:988
python字符串中符号 浏览:787