自定义布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent" android:layout_width="fill_parent"
>
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
android:background="@drawable/popup_title" android:id="@+id/about_us_rel01">
<TextView android:id="@+id/about_us_title" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关于我们" android:layout_marginLeft="20dip" android:textSize="20dip"/>
</RelativeLayout>
<RelativeLayout android:layout_height="wrap_content" android:layout_below="@+id/about_us_rel01"
android:background="@drawable/popup_bg" android:id="@+id/about_us_rel02"
android:layout_width="fill_parent" android:gravity="center" >
<ListView android:id="@+id/test_alertdialog_listview"
android:layout_height="wrap_content" android:layout_width="wrap_content"
></ListView>
</RelativeLayout>
</RelativeLayout>
java代码
final String[] datas ={"data1","data2"};
LayoutInflater inflater = this.getLayoutInflater();
View view = inflater.inflate(R.layout.test_alertdialog_listview,null);
ListView lv = (ListView)view.findViewById(R.id.test_alertdialog_listview);
lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,datas));
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
alertdialog.dismiss();
Toast.makeText(TestAndroid.this, datas[position], Toast.LENGTH_LONG).show();
}
});
alertdialog = new AlertDialog.Builder(this)
// .setView(view);
.setItems(datas, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.create();
// 在此使用setview方法可以设置布局文件和alertdialog四周边框的距离,可以消除黑边框
alertdialog.setView(view, 0, 0, 0, 0);
alertdialog.show();
此外,我们还可以通过设置dialog的样式来定义,消除边框
使用样式文件,在values 目录下新建styles.xml文件,编写如下代码:
<resources>
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<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>
调用时,使用AlerDialog的接口类,Dialog 接口编写如下代码:
Dialog dialog =
new Dialog(SetActivity.this, R.style.dialog);
dialog.setContentView(R.layout.test);
dialog.show();
下面我们查看一下Dialog的源码文件,里面的构造函数为如下:
public Dialog(Context context, int theme) {
mContext =new ContextThemeWrapper(context, theme ==0? com.android.internal.R.style.Theme_Dialog : theme);
mWindowManager = (WindowManager)context.getSystemService("window");
Window w = PolicyManager.makeNewWindow(mContext);
mWindow = w;
w.setCallback(this);
w.setWindowManager(mWindowManager, null, null);
w.setGravity(Gravity.CENTER);
mUiThread = Thread.currentThread();
mDismissCancelHandler =
new DismissCancelHandler(this);
}
这里面我们可以看出,Android 使用了默认的构造函数为Dialog 设置样式,如果没有为其设置样式,即默认加载事先编写好的样式文件,Dialog 一共由多个9.png的图片构成,大部分都是带有边框的9.png图片,所以就是为什么我们上边的样式文件要将其背景去除掉。这个东西搞了我好久,希望对你有帮助
来自:http://www.eoeandroid.com/forum-viewthread-tid-32577-highlight-%2Bdialog.html
http://www.eoeandroid.com/thread-28762-1-1.html
分享到:
相关推荐
新手在自定义AlertDialog上的疑问笔者猜测主要有两个: 1、自定义的layout如何放到AlertDialog中? 解答: 获取到layout的view之后,直接调用AlertDialog.Builder的setView方法即可。 2、如何对自定义AlertDialog中...
android自定义AlertDialog,例如支付页面,先弹出自定义AlertDialog询问是否愿意支付,确定则弹出另外一个自定义AlertDialog,选择支付方式,android自定义AlertDialog,android自定义AlertDialog,android自定义...
自定义AlertDialog去除黑色背景的解决方法 在 Android 开发中,AlertDialog 是一个常用的对话框组件,用于提示用户或获取用户输入。然而,在默认情况下,AlertDialog 会显示一个黑色的背景,这可能会影响应用程序的...
在Android开发中,自定义`AlertDialog`是一种常见的需求,它能帮助我们提供更丰富的用户交互体验,让应用的通知、确认或选择操作更加个性化。本文将深入探讨如何打造一个通用的自定义`AlertDialog`,并结合实际示例...
本篇将详细探讨如何自定义一个AlertDialog来作为耗时任务的提示。 首先,我们需要创建一个自定义的对话框布局文件。在项目的res/layout目录下,创建一个新的XML文件,例如`custom_dialog.xml`。这个布局文件可以...
然而,系统默认的`AlertDialog`样式有时不能满足开发者的设计需求,这时我们就需要进行自定义以实现更个性化的对话框。本文将详细介绍如何自定义一个`AlertDialog`,并提供相关的代码示例。 首先,自定义`...
自定义AlertDialog(仿微信)
这个是看了网上很多例子后,自己优化改进写出来的例子。用法和安卓原生的显示,可以由用户自行组合出自己想要的弹出框,不会高度定制限定死各种弹出框的UI,每个部件都是独立的,如标题,内容,左按钮,右按钮,底部...
因此,自定义AlertDialog成为了提升应用用户体验的重要手段。本文将深入探讨如何在Android中实现一个美观且功能丰富的自定义AlertDialog。 首先,我们要了解AlertDialog的基本结构。它通常包含一个标题、一个消息...
在Android开发中,有时我们可能需要为应用提供更加个性化的用户体验,这往往涉及到自定义对话框(AlertDialog)和布局的设计。本主题将深入探讨如何创建一个具有弧形效果的GridView,将其集成到自定义的AlertDialog...
最近项目里有个功能点,需要使用...我需要继承AlertDialog,设置自己的内容view,重写onKeyDown方法,设置dialog的位置等...... 写了个demo. Demo是在5.0手机上测试的, 6.0以上系统还需要添加动态运行时权限的逻辑 。
本教程将围绕“自定义`AlertDialog`”这一主题,详细介绍如何在不编写自定义布局的情况下,在Android应用中创建符合需求的对话框。 首先,我们需要了解`AlertDialog.Builder`类,它是创建`AlertDialog`的主要工具。...
`自定义AlertDialog_android_v1.0.01`的更新主要针对自定义`AlertDialog`的功能进行了增强。通过此次更新,开发者现在可以更加灵活地自定义`AlertDialog`的样式。具体来说,更新允许开发者传入自定义的View资源来...
默认的`AlertDialog`样式有时无法满足开发者对于界面定制的需求,因此我们常常需要自定义其布局来实现更丰富的功能和更美观的界面。下面将详细讲解如何自定义`AlertDialog`的布局。 首先,自定义`AlertDialog`布局...
本文实例讲述了Android编程自定义AlertDialog样式的方法。分享给大家供大家参考,具体如下: 开发的时候,通常我们要自定义AlertDialog来满足我们的功能需求: 比如弹出对话框中可以输入信息,或者要展示且有选择...
自定义`AlertDialog`则可以让开发者根据应用的风格和需求来定制对话框的外观和行为,以提供更佳的用户体验。下面将详细讲解如何在Android中自定义`AlertDialog`以及涉及到的相关知识点。 首先,创建自定义`...
系统提供的默认`AlertDialog`样式虽然实用,但在某些情况下可能无法满足设计师的个性化需求,这时我们就需要自定义`AlertDialog`来实现特定的界面效果。 自定义`AlertDialog`主要涉及以下几个步骤: 1. 创建`...
自定义`AlertDialog`能够帮助开发者实现更加丰富且个性化的交互体验,例如模拟微信朋友圈发布的弹出选择框。本篇将详细介绍如何创建这样一个自定义`AlertDialog`。 首先,我们从`AlertDialog`的基本用法开始。`...