导航:首页 > 操作系统 > 安卓如何设置对话框图片

安卓如何设置对话框图片

发布时间:2022-12-15 10:28:52

1. android怎么修改系统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"

不过这只是指定了Dialog的主题。如果是通过AlertDialog创建出来的对话框,主题还是原来的。所以我们还需要以下步骤。

7、编写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>

在这里我参考了原生的alertDialog的style,设定了窗口背景为透明,以及windowContentOverlay为null这两个重要属性,否则你会看到在AlertDialog下面还有一层对话框的背景,或者是对话框的背景遮住了所有内容这样的问题存在。

8、指定AlertDialog的主题。

我们需要在第4步所说的自定义的AppTheme中,添加一行代码来指定要使用的AlertDialog的style,代码如下:

?

<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>

9、修改标题下面的蓝色线。

如果你修改了对话框的主题颜色,那么标题下面的蓝色的线肯定会让你很郁闷。如果对话框较少,你可以选择隐藏标题,然后自定义一个包含了标题的View来设置为对话框的内容。但是如果你的对话框有许多种,而且本来都是可以调用原来的API就来生成的话,要去定义这么多个带标题的view,这样做下来心里肯定是很纠结的。

标题下面的蓝色的线,并不是在Dialog或AlertDialog中设置或通过它们的style中定义的。它是定义在各种风格的dialog的layout当中,然后再在AppTheme里面指定dialog的对应属性。遗憾的是,目前我看到这几个相关属性还不是public的,不能自己设置,所以只有通过java代码来实现了。

表示这条蓝色的线的叫做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);

2. 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.

3. 在android开发中,如何控制dialog 的大小 和 图片的大小

1、控制大小和位置
/*
*
获取对话框的窗口对象及参数对象以修改对话框的布局设置,
*
可以直接调用getWindow(),表示获得这个Activity的Window
*
对象,这样这可以以同样的方式改变这个Activity的属性.
*/
Window
dialogWindow
=
dialog.getWindow();
WindowManager.LayoutParams
lp
=
dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.LEFT
|
Gravity.TOP);
/*
*
lp.x与lp.y表示相对于原始位置的偏移.
*
当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
*
当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
*
当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
*
当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
*
当参数值包含Gravity.CENTER_HORIZONTAL时
*
,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
*
当参数值包含Gravity.CENTER_VERTICAL时
*
,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
*
gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL
|
*
Gravity.CENTER_VERTICAL.
*
*
本来setGravity的参数值为Gravity.LEFT
|
Gravity.TOP时对话框应出现在程序的左上角,但在
*
我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
*
Gravity.LEFT,
Gravity.TOP,
Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离
*/
lp.x
=
100;
//
新位置X坐标
lp.y
=
100;
//
新位置Y坐标
lp.width
=
300;
//
宽度
lp.height
=
300;
//
高度
lp.alpha
=
0.7f;
//
透明度
//
当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
//
dialog.onWindowAttributesChanged(lp);
dialogWindow.setAttributes(lp);
/*
*
将对话框的大小按屏幕大小的百分比设置
*/
//
WindowManager
m
=
getWindowManager();
//
Display
d
=
m.getDefaultDisplay();
//
获取屏幕宽、高用
//
WindowManager.LayoutParams
p
=
getWindow().getAttributes();
//
获取对话框当前的参数值
//
p.height
=
(int)
(d.getHeight()
*
0.6);
//
高度设置为屏幕的0.6
//
p.width
=
(int)
(d.getWidth()
*
0.65);
//
宽度设置为屏幕的0.95
//
dialogWindow.setAttributes(p);

4. android 如何在 dialog 中添加图片

用自定义Dialog去加载一个View来显示即可。
以下为示例代码:
Android中,在Dialog中增加EditText需要使用view控件,也可参考附件源代码。
具体实现代码:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); //设置对话框标题
builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标

2.创建EditText输入框
final EditText edit = new EditText(context);

3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});

4.设置常用api,并show弹出
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();

5. android 如何在 dialog 中添加图片

一般来说
在Android里显示Gif图片,只会显示第一帧。如果想显示gif图片的话可以用Movie来显示图片

在dialog显示图片可以使用AlertDialog
加载一个布局,布局中显示你所要显示的图片。比如
LayoutInflater
inflater
=
getLayoutInflater();
View
layout
=
inflater.inflate(R.layout.dialog,
(ViewGroup)
findViewById(R.id.dialog));
new
AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
.setPositiveButton("确定",
null)
.setNegativeButton("取消",
null).show();
希望能帮到你。

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

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

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

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

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

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

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

7. 微信聊天对话框怎么设置

微信是不能更改对话框颜色的,但可以对每个人的聊天背景进行自定义设置。

微信对聊天背景进行自定义设置的操作步骤如下:

1、首先打开微信页面并点击设置选项进入。

阅读全文

与安卓如何设置对话框图片相关的资料

热点内容
伊克塞尔文档怎么进行加密 浏览:884
app转账是什么 浏览:157
php的基本语法 浏览:790
对外汉语pdf 浏览:516
如何用mamp本地web服务器 浏览:869
如何加密自己js代码 浏览:627
排列组合a与c的算法 浏览:534
如何在文件夹中找到同名内容 浏览:786
有什么app文字转韩文配音 浏览:372
循环宏1命令 浏览:35
斐波那契数列矩阵算法 浏览:674
公式保护后加密不了 浏览:82
java跳转到jsp 浏览:819
327平方根算法 浏览:216
win7美化命令行终端 浏览:797
免加密狗图片 浏览:485
一只透明的鸟是什么app 浏览:817
空气压缩机油批发商 浏览:69
linuxifexist 浏览:4
加密tf卡拷入文件 浏览:399