`
cq520
  • 浏览: 167777 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

阅读更多

我们知道在写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对象是公有的即可。这样可以避免在多个不同的类中同时含有画笔与画布对象,但有时候需要公用,有时候又需要分开用的情况。

分享到:
评论

相关推荐

    对话框中绘图,解决闪屏问题

    2. **绘制到内存**:在`OnPaint`或`OnDrawItem`等绘图函数中,首先在内存位图上进行所有的绘图操作。可以使用`CreateCompatibleDC`创建一个兼容的设备上下文,然后在该上下文中绘制图形。 3. **拷贝到屏幕**:绘制...

    Android源码——画图程序源码.zip

    在Android平台上,开发一款画图程序涉及到多个技术层面和组件的使用。这个"Android源码——画图程序源码.zip"文件包含了一个简单的Android应用程序,它允许用户在屏幕上自由绘制图形。通过分析这个源码,我们可以...

    Android学习-画图着色

    Android提供了Bitmap类来处理位图图像,我们可以将当前画布转换为Bitmap,然后使用MediaStore或Intent来保存到设备上。反之,也可以从设备中读取图片,将其加载到画布上供用户着色。 5. **权限管理**:由于涉及到...

    [Android实例] 手写签名,画笔颜色选择器

    当用户在屏幕上滑动手指时,我们需要记录下每一个触点的位置,并根据画笔的颜色和宽度,在`onDraw`方法中绘制线条。`Path`对象可以用来存储这些线条路径,`Canvas`则用于实际的绘制工作。 在描述的博客文章中,作者...

    屏幕画笔实现源码.zip

    可能的优化策略包括减少不必要的绘图调用,使用硬件加速,以及适时地释放资源。 9. **UI设计**:应用界面应简洁易用,包括画笔大小调节、颜色选择等交互元素。Android的`SeekBar`可以用于调整画笔大小,而颜色选择...

    仿有道云笔记的原笔迹手写功能

    5. **图片保存**:用户可以将完成的作品保存为图片到设备中,这意味着项目集成了图像保存功能,可能使用Bitmap类将当前画布转换为位图,然后使用MediaStore或File类将其保存到设备的相册或指定位置。 6. **源码语言...

Global site tag (gtag.js) - Google Analytics