Android -- 图片画画板(canvas、paint、bitmap)
16lz
2021-01-23
布局文件:
MainActivity:
public class MainActivity extends Activity { private Button button; private ImageView p_w_picpathView; private Bitmap baseBitmap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); p_w_picpathView=(ImageView) findViewById(R.id.iv); paint=new Paint(); paint.setColor(Color.BLUE); //创建一个可修改的Bitmap baseBitmap=Bitmap.createBitmap(480, 320, Bitmap.Config.ARGB_8888); canvas=new Canvas(baseBitmap); canvas.drawColor(Color.WHITE); p_w_picpathView.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 newx=(int) event.getX(); int newy=(int) event.getY(); canvas.drawLine(startx, starty, newx, newy, paint); //跟新画笔的开始位置 startx=(int) event.getX(); starty=(int) event.getY(); p_w_picpathView.setImageBitmap(baseBitmap); break; case MotionEvent.ACTION_UP: break; } return true; } }); } public void save(View v) { try { File file=new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); FileOutputStream fos=new FileOutputStream(file); baseBitmap.compress(CompressFormat.JPEG, 100, fos);//第一个参数为图片格式 fos.close(); Toast.makeText(this, "保存图片成功", 2000).show(); //模拟消息:SD卡被重新挂载了 Intent intent=new Intent(); intent.setAction(intent.ACTION_MEDIA_MOUNTED); intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory())); sendBroadcast(intent); } catch (FileNotFoundException e) { Toast.makeText(this, "保存图片失败", 2000).show(); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
因为要存入SD中,所以还要加一个权限:
运行结果:
更多相关文章
- Android 自定义Drawable 实现圆角矩形和圆形图片
- android三种载入图片方式
- Android --- 图片处理的方法
- Android判断文件类型(视频、音频、图片等)
- android剪切圆角图片的方法
- android直接从图片中对二维码编码解码
- 23_传智播客Android视频教程_网络通信之网络图片查看器
- android 网络获取图片并存储