android—图片画画板

代码:                                          图片画画板

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button = (Button) findViewById(R.id.bt);
        iv = (ImageView) findViewById(R.id.iv);
        //设置画笔
        paint = new Paint();
        paint.setStrokeWidth(5);
        paint.setColor(Color.GREEN);
        //创建一个图片
        bitmap = Bitmap.createBitmap(720, 942, Bitmap.Config.ARGB_8888);
        //创建画布
        canvas = new Canvas(bitmap);
        canvas.drawColor(Color.WHITE);


        //知道手指在屏幕上触摸的轨迹
        iv.setOnTouchListener(new View.OnTouchListener() {
            int startx;
            int starty;

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    //手指第一次触摸屏幕的时候

                    case MotionEvent.ACTION_DOWN:
                        //创建一个可以被修改的bitmap
                        System.out.println("手指按下");
                        System.out.println(iv.getWidth());
                        System.out.println(iv.getHeight());


                        startx = (int) event.getX();
                        starty = (int) event.getY();
                        break;

                    //手指在屏幕上迁移的时候
                    case MotionEvent.ACTION_MOVE:
                        System.out.println("手指迁移");
                        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();
                        iv.setImageBitmap(bitmap);

                        //手指离开屏幕的时候
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });


    }

    public void save(View view) throws IOException {
        String fileName = "/data/" + System.currentTimeMillis() + ".jpg";
        System.out.println(fileName);
        File file = new File(fileName);
        try {
            FileOutputStream fos = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.close();
            Toast.makeText(this, "保存图片成功", Toast.LENGTH_LONG).show();
           /* //模拟一个消息,说系统sd卡被重新挂载了
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
            intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
            sendBroadcast(intent);*/
            //android 4.4以后使用下面来解决,限制了只有系统应用才有权限通过广播扫描sd卡
            MediaScannerConnection.scanFile(this, new String[]{fileName}, null, null);

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(this, "保存图片失败", Toast.LENGTH_SHORT).show();
        }

    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值