android alertDialog如何改变其样式,就是可以修改其背景,让背景为其他的颜色或背景图
如系统自带的alertdialog显示如下图:如何把背景色修改为其他的颜色或设置成背景图,并去掉四周的白色边框坐等答案...
如系统自带的alertdialog显示如下图:
如何把背景色修改为其他的颜色或设置成背景图,并去掉四周的白色边框
坐等答案 展开
如何把背景色修改为其他的颜色或设置成背景图,并去掉四周的白色边框
坐等答案 展开
2个回答
展开全部
可以自定义,你需要自定义一个布局文件。设置好你要显示的样式,在代码中,创建一个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.特殊情况要特殊处理
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.特殊情况要特殊处理
展开全部
这个你要去仔细去看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,原理都是一样!
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,留邮箱发源码给你,不能复制东西出来,说起麻烦的很
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询