android实现简单的画画板
来源:互联网 发布:winamp看网络电视 编辑:程序博客网 时间:2024/04/30 14:12
画画板实现起来其实很简单,我们只需要利用android给我们提供的Canvas类来操作就可以实现简单的画画功能
直接看代码,注释都写清楚了
public class MainActivity extends Activity {private ImageView iv;private Bitmap baseBitmap;private Canvas canvas;private Paint paint;@Overrideprotected 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;@Overridepublic 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();}}}
简单的布局文件
<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>
再来个权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
上两张我画的高端大气上档次的图片。。。。
5 0
- android实现简单的画画板
- Android 实现简单的画画版一
- Canvas实现简单画画板
- Android 自定义控件的画画扳的简单实现
- Android--简单的画画板实例代码
- ImageView实现画画板的功能
- android画画板
- android 画画板
- Android画画板剖析
- Android 画画板
- Android画画板
- Android小应用-----画画板
- android—图片画画板
- Android之Canvas画画板
- android图片_画画板
- Android画画板小案例
- Android开发笔记之简易画画板的制作
- android 画画
- 搭建Windows平台下针对MinGW编译器的Qt4开发环境
- JavaScript中this关键字含义及其最佳实践(一)
- Verybot之OpenCV应用一:安装与图像采集测试
- 《c primer pius》第六章第14题,发现网上好多都有问题,编写一个程序读入一行输入,然后反向打印该行,您可以把输入存储在一个char数组中
- 树状数组
- android实现简单的画画板
- Windows下QT+VS2010环境搭建
- 我的大学见闻问答录
- 用textpad使abaqus(inp).fortran,python 代码语法加量
- sublime text执行perl程序
- hdu2000解题报告
- Codeforces 382 B. Number Busters
- 【JavaScript插件】对象的方法链式调用类
- C指针原理(63)-Ncurses-文本终端的图形