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
原创粉丝点击