安卓简单的画板
来源:互联网 发布:中国软件同花顺 编辑:程序博客网 时间:2024/05/16 07:22
通过不断的修改BitMap来画画,需要注意的是在移动时XY坐标点需要重置.public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView mImage; /** * 修改颜色 */ private Button mButColor; /** * 修改线宽 */ private Button mButLine; private Bitmap bitmapCopy; private Canvas canvas; private Paint paint; /** * 画布Canvas 画笔paint 手势识别器 * 整体思路,因为我是图片作画,实际上是对图片进行修改,起到画图的效果 * 1.原图,白纸,画布,画笔 * 2.根据手势识别进行作画 * * @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); //加载原图 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.aaa); //做一个图片的复制 bitmapCopy = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); //创建画布 canvas = new Canvas(bitmapCopy); //创建画笔 paint = new Paint(); //开始画画 canvas.drawBitmap(bitmap,new Matrix(),paint); //设置手势识别 mImage.setOnTouchListener(new View.OnTouchListener() { private float starty; private float startx; @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch(motionEvent.getAction()){ case MotionEvent.ACTION_DOWN: startx = motionEvent.getX(); starty = motionEvent.getY(); break; case MotionEvent.ACTION_MOVE: float x = motionEvent.getX(); float y = motionEvent.getY(); canvas.drawLine(startx,starty,x,y,paint); startx=x; starty=y; mImage.setImageBitmap(bitmapCopy); break; default: break; } return true; } }); } private void initView() { mImage = (ImageView) findViewById(R.id.image); mButColor = (Button) findViewById(R.id.butColor); mButColor.setOnClickListener(this); mButLine = (Button) findViewById(R.id.butLine); mButLine.setOnClickListener(this); } //这里指示简单的修改了颜色和线宽 @Override public void onClick(View v) { switch (v.getId()) { case R.id.butColor: paint.setColor(Color.RED); break; case R.id.butLine: paint.setStrokeWidth(10);// paint.setTextSize(1500); break; } }}
//保存文件
File file=new File(path,"AA");try { file.createNewFile();FileOutputStream fos=new FileOutputStream(file);bitmapCopy.compress(Bitmap.CompressFormat.JPEG,50,fos);} catch (IOException e) {e.printStackTrace();}
阅读全文
0 0
- 安卓简单的画板
- 初探安卓画板
- 安卓画板
- 安卓几何画板
- 简单画板的制作
- 简单的画板实例
- 一个简单的svg画板
- 一个简单的html5画板
- 一个简单的html5画板
- 补充一个简单的画板
- 简单的HTML5在线画板
- iOS 画板的简单实现
- android 制作简单的画板
- 简单的双缓冲画板
- 制作一个简单的画板
- Android简单画板的实现
- 用vb制作简单的画板
- Android开发:一个简单的画板
- python+selenium+PhantomJS爬取网页动态加载内容
- AJAX的数据传输格式
- 51nod 1811 联通分量计数
- CodeForces
- HDU6061 RXD and functions
- 安卓简单的画板
- 百练1017装箱问题
- HttpRequest的作用
- sql查询10-20行的数据
- jzoj1252. 天平
- cocos2d_js 拼图游戏源码(点击互换版)
- Scanner中sc.next() 和 nextLine 的区别
- 一:51单片机简单IO实验(自测)
- ArrayList