Android画画板剖析
来源:互联网 发布:杀毒防护软件排行 编辑:程序博客网 时间:2024/05/01 10:54
public class MainActivity extends AppCompatActivity { private ImageView iv; private Bitmap bitmap, backGroud; //画纸和背景图 private Canvas canvas; //画布 private Paint paint; //画笔 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); iv.setImageResource(R.drawable.bg); //拿到背景图 backGroud = BitmapFactory.decodeResource(getResources(), R.drawable.bg); //拿到和背景图一样大小的画纸 bitmap = Bitmap.createBitmap(300, 750, backGroud.getConfig()); //Canvas相当于一个画板,bitmap为画布,这段代码将bitmap作为画布放在画板上, //开始画时,画布会随之变化,也就是说bitmap会变成随之画而改变,在这里创建的Canvas和画布的大小一样 canvas = new Canvas(bitmap); //拿到画笔 paint = new Paint(); paint.setColor(Color.RED);//设置画笔颜色为黑色// paint.setStyle(Paint.Style.FILL);//设置画笔为空心 paint.setStrokeWidth(5); //添加处理规则 Matrix matrix = new Matrix(); //照着背景图画 canvas.drawBitmap(backGroud, matrix, paint); iv.setOnTouchListener(new View.OnTouchListener() { float startX; float startY; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { //获取按下时的坐标 case MotionEvent.ACTION_DOWN: startX = event.getX(); startY = event.getY(); break; //获取移动时的坐标 case MotionEvent.ACTION_MOVE: //Canvas的宽高与iv的宽高相同且Canvas的绘图坐标系是以左上角为原点,所以iv点击处距离 //iv左上角的距离即为我们要画的距离,直接在两点画线,画完之后,将改变后的画布bitmap //设置为iv的背景显示 float stopX = event.getX(); float stopY = event.getY(); // 在开始和结束坐标间画一条线 canvas.drawLine(startX, startY, stopX, stopY, paint); //实时更新坐标(通过不断画线) startX = event.getX(); startY = event.getY(); iv.setImageBitmap(bitmap); break; case MotionEvent.ACTION_UP: break; default: break; } return true; } }); }}
0 0
- Android画画板剖析
- android画画板
- android 画画板
- Android 画画板
- Android画画板
- Android小应用-----画画板
- android—图片画画板
- Android之Canvas画画板
- android图片_画画板
- Android画画板小案例
- android 画画
- 画画板
- 画画板
- 画画板
- android实现简单的画画板
- 2015年第一篇:Android 画画板
- Android图像处理(二) 画画板
- android之旅23 多媒体处理2: 画画板
- Poj 2516 Minimum Cost【费用流Min_Cost_Max_flow】
- leetcode:字符串之Valid Palindrome && Palindrome Number
- JavaScript检测字符串中是否有空格
- 笔记
- Redis Sentinel环境搭建
- Android画画板剖析
- 阿里云nginx服务器多站点的配置
- 设计模式--工厂方法模式(Factory Method Pattern)
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- File类的createNewFile()和mkdirs()
- NYOJ 44 子串和 && NYOJ 983 首尾相连数组的最大子数组和
- studio的目录和eclipse的区别
- Python2.7导包失败
- spring同时使用aop和spel表达式出错:Property or field 'instrument' cannot be found on object of type 'com.sun.pr