Bitmap and DrawPoint
16lz
2021-01-24
Bitmap and DrawPoint
Android UI 中有时需要画Bitmap,那么如何画Bitmap?
onTouchEvent(MotionEvent event) 重载了View()的函数,用来监听屏幕的触摸,从event事件中可以获得触摸点的坐标。
Android UI 中有时需要画Bitmap,那么如何画Bitmap?
- 利用已有资源初始化Bitmap。
public void fillPointArrays(int color,Drawable drawable) { Bitmap bitmap = Bitmap.createBitmap(pointSize, pointSize, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, pointSize, pointSize); drawable.draw(canvas); pointArray[color] = bitmap; } Resources r = this.getContext().getResources(); fillPointArrays(GREEN,r.getDrawable(R.drawable.green_point));
- 屏幕触摸画点,利用已经初始化的Bitmap画点。
@Overridepublic boolean onTouchEvent(MotionEvent event) {//获得触摸点的坐标point = newPoint(event.getX(), event.getY());refressCanvas();return true;}
onTouchEvent(MotionEvent event) 重载了View()的函数,用来监听屏幕的触摸,从event事件中可以获得触摸点的坐标。
- 根据触摸点的坐标,画出触摸的点。
//画点 private void drawPoint(Canvas canvas){ canvas.drawBitmap(pointArray[0],point.x*pointSize+xOffset,point.y*pointSize+yOffset,paint); }//根据触摸点坐标找到对应点private Point newPoint(Float x, Float y){Point p = new Point(0, 0);for (int i = 0; i < maxX; i++) {if ((i * pointSize + xOffset) <= x&& x < ((i + 1) * pointSize + xOffset)) {p.setX(i);}}for (int i = 0; i < maxY; i++) {if ((i * pointSize + yOffset) <= y&& y < ((i + 1) * pointSize + yOffset)) {p.setY(i);}}return p;}
更多相关文章
- Android(安卓)屏幕适配之框架(AndroidAutoSize)(今日头条)适配
- AES加解密在Android(安卓)4.2上的Encryption error
- Android(安卓)OpenGL射线拾取&手势旋转(二)
- android network,gps定位切换
- 使用百度地图SDK 这是之前版本 现在的sdk v2-1-2使用方法完全改
- Android培训班(38)
- Android系统启动流程之Init说明
- flutter集成推送功能-小米推送集成
- Android(安卓)ViewPager的初始化及遇到的切换异常,界面异常拉伸