android alertDialog如何改变其样式,就是可以修改其背景,让背景为其他的颜色或背景图

如系统自带的alertdialog显示如下图:如何把背景色修改为其他的颜色或设置成背景图,并去掉四周的白色边框坐等答案... 如系统自带的alertdialog显示如下图:
如何把背景色修改为其他的颜色或设置成背景图,并去掉四周的白色边框
坐等答案
展开
 我来答
wndclass
2011-05-09 · TA获得超过744个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:320万
展开全部
可以自定义,你需要自定义一个布局文件。设置好你要显示的样式,在代码中,创建一个Dialog,然后使用LayoutInflate把布局引进来就可以。例子:

package cn.ceo.layoutinflater.activity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
showDialog();
}

private void showDialog() {
AlertDialog.Builder builder;
AlertDialog alertDialog;
//Context mContext = MainActivity.this;

/*
* // 下面俩种方法都可以 // //LayoutInflater inflater = getLayoutInflater();
* LayoutInflater inflater = (LayoutInflater) mContext
* .getSystemService(LAYOUT_INFLATER_SERVICE); View layout =
* inflater.inflate(R.layout.dialog, null); TextView text = (TextView)
* layout.findViewById(R.id.text);
* text.setText("Hello, Welcome to Mr Wei's blog!"); ImageView image =
* (ImageView) layout.findViewById(R.id.image);
* image.setImageResource(R.drawable.tap); builder = new
* AlertDialog.Builder(mContext); builder.setView(layout); alertDialog =
* builder.create(); alertDialog.show();
*/
LayoutInflater inflater = (LayoutInflater) MainActivity.this
.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.dialog, null);
TextView textView = (TextView) layout.findViewById(R.id.text);
textView.setText("出错了!");
ImageView imageView = (ImageView) layout.findViewById(R.id.image);
imageView.setImageResource(R.drawable.tap);
builder = new AlertDialog.Builder(MainActivity.this);// 创建一个弹出对话框构造器
builder.setView(layout);
alertDialog = builder.create();// 通过构造器产生一个对话框
alertDialog.show();
}
}
-----------
另外,如果你对话框没有出来,那可能是你传入的Context不对。dialog一般在哪个activity上就传对应的context.特殊情况要特殊处理
百度网友6521f69
2011-05-09 · TA获得超过247个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:183万
展开全部
这个你要去仔细去看SDK里面alertDialog类的方法,以下是一个思路,主要代码如下:
dlg = new AlertDialog.Builder(context).create();
dlg.show();
dlg.getWindow().setContentView(R.layout.alert_style);
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_style, null);
gv = (GridView) view.findViewById(R.id.myGrid);
gv.setAdapter(new ImageAdapter(context, new Integer[] {R.drawable.menu_mark_editor,R.drawable.menu_delete}));
dlg.getWindow().setContentView(gv);
其实原理很简单,就是在弹出框AlertDialog上给他加一个自己的View 我这里使用的是GridView显示的一排图片,效果和UC的差不多!!你也可以使用ListView代替GridView,原理都是一样!
更多追问追答
追问
上面的我也能百度出来,实现不了的,来点实用的。
追答
刚才我试了试,我用
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(test2);
AlertDialog al = builder.create();
al.show();
可以实现背景更换设置title等,关键是setView,留邮箱发源码给你,不能复制东西出来,说起麻烦的很
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式