画画板原理
来源:互联网 发布:php全局变量global 编辑:程序博客网 时间:2024/04/27 20:18
//画画板原理:在滑动过程中不断得到坐标,在坐标之间划线 public class MainActivity extends Activity { private ImageView iv; private Bitmap srcBM; private Bitmap copyBM; private Matrix matrix; private Canvas canvas; private Paint paint; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); srcBM = BitmapFactory.decodeResource(getResources(), R.drawable.bg); copyBM = Bitmap.createBitmap(srcBM.getWidth(),srcBM.getHeight(), srcBM.getConfig()); canvas = new Canvas(copyBM); paint = new Paint(); matrix = new Matrix(); canvas.drawBitmap(srcBM, matrix, paint); iv.setImageBitmap(copyBM); iv.setOnTouchListener(new OnTouchListener() { int startX = 0; int startY = 0; public boolean onTouch(View v, MotionEvent event) { int action =event.getAction(); switch (action) { 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); iv.setImageBitmap(copyBM); //更新的起始的坐标 startX = stopX; startY = stopY; break; } return true;//返回值必须为true,为false时不执行 } }); } public void red(View view){ paint.setColor(Color.RED); } public void brush(View view) { paint.setStrokeWidth(10); } public void save(View view) { try { //保存文件 OutputStream os = new FileOutputStream("/mnt/sdcard/draw.jpg"); //压缩图片,第一个参数是压缩格式,第二个是压缩质量,100最高表示不压缩,0最低,第三个参数os表示输出流 copyBM.compress(CompressFormat.JPEG, 100, os); //记得保存需要权限 Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
0 0
- 画画板原理
- 画画板
- 画画板
- 画画板
- android画画板
- 图片画画板
- 图片画画板
- iOS 画画板
- iOS_24_画画板(含取色板)
- android 画画板
- andorid画画板
- 图片画画板
- Android画画板剖析
- android_65_简易画画板
- Android 画画板
- 画画板案例
- Android画画板
- 画画
- ButterKnife--View注入框架
- 西语
- C++随笔1:C++内联函数
- Dash_API与必应翻译的综合使用
- HDOJ 5375 Gray code 【格雷码】
- 画画板原理
- C语言小知识(待续)
- Android--HttpURLConnection
- LintCode-赋值运算符重载
- leetcode 112: Path Sum
- 基础知识
- 话务预测(6) 时间序列特征
- Springmvc构造RESTful详细讲解
- 第0001道练习题_Python生成随机码