我们知道在写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平台上,开发一款画图程序涉及到多个技术层面和组件的使用。这个"Android源码——画图程序源码.zip"文件包含了一个简单的Android应用程序,它允许用户在屏幕上自由绘制图形。通过分析这个源码,我们可以...
Android提供了Bitmap类来处理位图图像,我们可以将当前画布转换为Bitmap,然后使用MediaStore或Intent来保存到设备上。反之,也可以从设备中读取图片,将其加载到画布上供用户着色。 5. **权限管理**:由于涉及到...
当用户在屏幕上滑动手指时,我们需要记录下每一个触点的位置,并根据画笔的颜色和宽度,在`onDraw`方法中绘制线条。`Path`对象可以用来存储这些线条路径,`Canvas`则用于实际的绘制工作。 在描述的博客文章中,作者...
可能的优化策略包括减少不必要的绘图调用,使用硬件加速,以及适时地释放资源。 9. **UI设计**:应用界面应简洁易用,包括画笔大小调节、颜色选择等交互元素。Android的`SeekBar`可以用于调整画笔大小,而颜色选择...
5. **图片保存**:用户可以将完成的作品保存为图片到设备中,这意味着项目集成了图像保存功能,可能使用Bitmap类将当前画布转换为位图,然后使用MediaStore或File类将其保存到设备的相册或指定位置。 6. **源码语言...