⑴ android 的 AlertDialog 对话框样式可以修改吗
Android 提供了AlertDialog类可通过其内部类Builder轻松创建对话框窗口,但是没法对这个对话框窗口进行定制,为了修改 AlertDialog 窗口显示的外观,解决的办法就是创建一个指定的 AlertDialog 和 AlertDialog.Builder 类。
定义外观
我们希望将上面默认的对话框外观修改为如下图所示的新对话框风格:
编写对话框和 Builder 类
⑵ Android如何把QQ登录界面和自定义对话框结合起来
1、在Android打开设置找到模拟器。
2、在模拟器中输入qq账号不输入密码,点击登录按钮会显示提醒对话框。
2、登陆qq后在对话框内输入账号和密码,qq登录的界面和自定义对话框就会结合起来。
⑶ android怎么设置activity为对话框模式
将activity设置成对话框样式,只需在activity属性里面增加下面一句代码:
然后可以activity左边增加一个小图片,让它更像dialog,代码如下:
但是上面的设置往往还不能满足实际需求,因为样子、背景和一些属性使用的默认的,下面使用style自定义一个,以后可以根据实际需要自行更改:
⑷ android怎么实现自定义对话框的背景
1. 在res/values下创建两个xml文件,一个为主体风格资源styles.xml一个为颜色资源colors.xml
styles.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name = "translucent" parent = "@android:style/Theme.Dialog">
<item name = "android:windowBackground">@color/translucent_background</item>
<item name = "android:windowIsTranslucent">true</item>
<item name = "android:windowNoTitle">true</item>
<item name ="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
</resources>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name = "translucent_background">#00000000</color>
</resources>
2. 在AndroidManifest.xml为Activity指定自定义的主题
<activity android:name = “.right” android:theme = “@style/translucent” />
3. 在显示图片的activity布局文件中加入图片资源(设置layout的背景或者增加一个ImageView显示图片)
4.在Activity java文件right.java中关联布局文件,然后运行Android工程到此activity.
⑸ 安卓怎么修改系统“DIALOG”风格
具体步骤如下:
1编写一个文本样式。
DIALOG的标题是一个textview,在sytles.xml中,添加如下代码来设置你自己的文本样式:
<style name="DialogWindowTitle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/font_dark_grey</item>
</style>
2设置对话框的标题主题。
上面的标题文本并不能直接设置为对话框的标题样式。 我们还需要编写一个表示标题的主题的style,在这里指定标题的文本样式。代码如下:
<style name="DialogWindowTitle.DeviceDefault">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/DialogWindowTitle</item>
</style>
3设置对话框主题。
接下来,我们编写我们的对话框主题,在这里指定标题的主题。由于一些属性并不是public的,所以我们需要继承自原来的某个style,代码如下:
<!--Dialog主题-->
<style name="Theme.DeviceDefault.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
</style>
4自定义App的主题。
接下来,我们需要在我们的App theme中指定我们的对话框使用这种主题,所以需要定义一个App theme。同样由于App theme的许多属性并不是public的(比如下面要提到的标题下面的那条蓝线),所以我们要继承自一个原生的style。这里我根据程序需要选择了Theme.Holo.Light.NoActionBar,代码如下:
<style name="ParkingTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:dialogTheme">@style/Theme.DeviceDefault.Dialog</item>
</style>
5指定App主题
我们需要在AndroidManifest.xml文件中,指定我们的app主题。这步很简单,只需要在application标签中指定android:theme的值即可,如下:
android:theme="@style/ParkingTheme"
6编写AlertDialog主题。
我们无法直接继承系统主题里的AlertDialog的style。如把parent指定为Theme.DeviceDefault.Dialog.Alert,Theme.Holo.Dialog.Alert,Theme.DeviceDefault.Light.Dialog.Alert或Theme.Holo.Light.Dialog.Alert,都会导致编译不过。所以我们需要继承自Dialog的style。在这里我以Theme.Holo.Light.Dialog为例,代码如下:
<!--AlderDialog主题-->
<style name="Theme.DeviceDefault.Dialog.Alert" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>
7指定AlertDialog的主题。
我们需要在第4步所说的自定义的AppTheme中,添加一行代码来指定要使用的AlertDialog的style,代码如下:
<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>
8修改标题下面的蓝色线。
表示这条蓝色的线的叫做titleDivider,我们可以通过getResources()的API来获取它的IP,然后设置颜色。代码如下:
public static final void dialogTitleLineColor(Dialog dialog, int color) {
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);
这行代码对于自定义的Dialog,可以在setContentView之后调用。但是对于AlertDialog,必须在show()方法被调用之后才可以去调用,否则会报错。
⑹ android中怎么设置一个日期的自定义对话框
在用户点击输入框或者输入框获得焦点的时候弹出来DatePickerDialog,用户点击设定按钮,将日期填写到输入框。
下面直接上代码:
[html] view plain print?
<EditText
android:id="@+id/Birthday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
android:inputType="none"//不显示系统输入键盘
android:layout_weight="1" >
</EditText>
[java] view plain print?
birthday = (EditText)findViewById(R.id.Birthday);
birthday.setInputType(InputType.TYPE_NULL); <span style="font-family: Arial, Helvetica, sans-serif;">//不显示系统输入键盘</span>
birthday.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){
Calendar c = Calendar.getInstance();
new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();
}
}
});
birthday.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
}
}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();
}
});
⑺ android怎样自定义对话框给个源码参考参考~
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.function_music);
// 实例化新的窗口
Window w = getWindow();
// 获取默认显示数据
Display display = w.getWindowManager().getDefaultDisplay();
// 获取窗口的背景图片
Resources resources = musicActivity.getResources();
Drawable drawable = resources.getDrawable(R.drawable.operate_bg);
// 设置窗口的背景图片
w.setBackgroundDrawable(drawable);
// 窗口的标题为空
w.setTitle(null);
// 定义窗口的宽和高
int width = (int) (display.getWidth() * 0.8);
int height = (int) (display.getHeight() * 0.5);
// 设置窗口的大小
w.setLayout(width, height);
// 设置窗口的显示位置
w.setGravity(Gravity.CENTER);
// 设置窗口的属性
WindowManager.LayoutParams wl = w.getAttributes();
w.setAttributes(wl);
// 获取控件
findView();
}
参考资料:Android自定义控件与自定义动画实战精讲视频课程【张科勇】
⑻ android开发中怎么自定义一个复选对话框
1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/checkbox_pressed" android:state_checked="true"/>
<item android:drawable="@drawable/checkbox_normal" android:state_checked="false"/>
<item android:drawable="@drawable/checkbox_normal"/>
</selector>
2.在values文件夹下的styles.xml文件中添加CustomCheckboxTheme样式。
<style name="CustomCheckboxTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
<item name="android:button">@drawable/checkbox_style</item>
</style>
3.在布局文件中使用CustomCheckboxTheme样式。
<CheckBox
android:id="@+id/select_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CustomCheckboxTheme" />
使用到的图片资源
checkbox_normal.png
checkbox_pressed.png