安卓中对话框的使用以及清除位图上资源的方法

本文介绍在安卓开发中如何使用AlertDialog创建对话框,并提供示例代码。此外还介绍了两种清除位图资源的方法,一种是使位图透明,另一种是通过画笔和画布彻底清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道在写JAVA代码时经常需要用到的一个东西就是对话框(Dialog),比如说我们编写的程序,别人在用的时候,我们需要给用户一些提示,而这些提示如果总是以窗口的形式弹出来难免比较麻烦,而且也加重了程序员的负担,但是很多人对安卓开发中对话框的弹出以及使用不太了解,下面有一段示例:

AlertDialog.Builder dialog=new AlertDialog.Builder(getContext());

                                          dialog.setTitle("白棋赢了");

                                          dialog.setMessage("是否开始新的一局");

                                          dialog.setPositiveButton("确定", surelistener);

                                          dialog.setNegativeButton("取消",cancellistener);

                                       dialog.show();

这是在写安卓五子棋的时候弹出一个对话框的方法,首先要用到AlertDialog.Builder来创建一个dialog对象,后面的 new AlertDialog.Builder();

括号中的应该写的是当前类的对象(Context),也就是说如果我们想要在当前的Activity中弹出对话框,这里就可以写this,这里的getContext是因为这是写在一个我写的MyView类里面的,MyView继承了ImageView中的getContext的方法.

然后在dialog中也提供了很多方法,如设置标题(Title,信息(Message,还有两个按钮,一个是PositiveButton,一个是NetgativeButton,里面需要输入两个值,前面一个是按钮上面的文字,后面一个是按钮的监听器,需要注意的是,这里的按钮监听器是包含在android.content.DialogInterface这个包里面的。

       灵活的使用对话框不仅使得代码更加简洁,也加强了用户的体验性,接下来还有一个知识点,就是如何清除位图上的资源,有两个方法,一个是将我们的位图上面的资源设为透明,map.eraseColor(Color.TRANSPARENT);//map是我们创建的位图对象,

当然,这样做的话,位图上的资源肯定还在,只是我们看不到了,如果要完全清除位图上的资源,就要采用下面的方法,p是我们创建的画笔对象Paint,c是我们创建的Canvas对象,如下:

p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

         Rect rect = new Rect(0, 0, 320, 320);

//这里的后面两个值要和我们创建的Bitmap对象的大小相同

         p.setStyle(Paint.Style.FILL);

            c.drawRect(rect, p);

            p.setStyle(Paint.Style.FILL_AND_STROKE);                

            p.setXfermode(null);

      不过,上面设置透明的方法也有一定的好处,一是在于代码比较简洁,二是在某些场合下,我们无法完成第二种方法,比如说我们是要在另外一个Activity的方法中清空这里的位图资源,使用第二种方法肯定会有一些需要考虑的地方,比如说画笔(Paint)与画布(Canvas)必须是公有的,而这种方法显然只需要Bitmap对象是公有的即可。这样可以避免在多个不同的类中同时含有画笔与画布对象,但有时候需要公用,有时候又需要分开用的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值