Android--简单的画画板实例代码
来源:互联网 发布:安装linux图形界面 编辑:程序博客网 时间:2024/04/30 08:15
<span style="font-size:14px;">public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBitmap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.iv = (ImageView) this.findViewById(R.id.iv); // 创建一张空白图片 baseBitmap = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888); // 创建一张画布 canvas = new Canvas(baseBitmap); // 画布背景为灰色 canvas.drawColor(Color.GRAY); // 创建画笔 paint = new Paint(); // 画笔颜色为红色 paint.setColor(Color.RED); // 宽度5个像素 paint.setStrokeWidth(5); // 先将灰色背景画上 canvas.drawBitmap(baseBitmap, new Matrix(), paint); iv.setImageBitmap(baseBitmap); iv.setOnTouchListener(new OnTouchListener() { int startX; int startY; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 获取手按下时的坐标 startX = (int) event.getX(); startY = (int) event.getY(); break; case MotionEvent.ACTION_MOVE: // 获取手移动后的坐标 int stopX = (int) event.getX(); int stopY = (int) event.getY(); // 在开始和结束坐标间画一条线 canvas.drawLine(startX, startY, stopX, stopY, paint); // 实时更新开始坐标 startX = (int) event.getX(); startY = (int) event.getY(); iv.setImageBitmap(baseBitmap); break; } return true; } }); } public void save(View view) { try { File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpg"); OutputStream stream = new FileOutputStream(file); baseBitmap.compress(CompressFormat.JPEG, 100, stream); stream.close(); // 模拟一个广播,通知系统sdcard被挂载 Intent intent = new Intent(); intent.setAction(Intent.ACTION_MEDIA_MOUNTED); intent.setData(Uri.fromFile(Environment .getExternalStorageDirectory())); sendBroadcast(intent); Toast.makeText(this, "保存图片成功", 0).show(); } catch (Exception e) { Toast.makeText(this, "保存图片失败", 0).show(); e.printStackTrace(); } }}</span>
简单的布局文件:
<span style="font-size:14px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:onClick="save" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="保存图片" /> <ImageView android:layout_above="@id/button1" android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout></span>再来个权限:
<span style="font-size:14px;"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/></span>
1 0
- Android--简单的画画板实例代码
- android实现简单的画画板
- Android 实现简单的画画版一
- Android 自定义控件的画画扳的简单实现
- android 画画
- 用代码画画
- android画画板
- android 画画板
- Android画画板剖析
- Android 画画板
- Android画画板
- Android开发笔记之简易画画板的制作
- flash简单画画actionscript3.0
- Canvas实现简单画画板
- 画画的函数_GDI
- 画画的启示
- 画画的函数_GDI
- 画画的玩意
- 自定义控件-下拉刷新和上拉加载的listView
- STRING转WCHAR 和WCHAR 转STRING
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- iprobe安装文档
- 获取数据库的key值
- Android--简单的画画板实例代码
- http接口测试——Jmeter接口测试实例讲解
- Android.mk 详解
- 用JS或者jQuery监听 浏览器窗口大小的变化事件
- 7、其他模式对象
- 基于JZ2440的QT4移植
- 最长递增子序列(LIS)
- IntelliJ IDEA / Tomcat - 内存溢出/内存优化最佳实践
- windows7/8.1下用cmd指令编译c程序