你的位置:首页 > 软件开发 > 操作系统 > Android开发——为移动的Paint元素指定图片的方法

Android开发——为移动的Paint元素指定图片的方法

发布时间:2015-07-05 19:00:08
最近在写一个类似“围住神经猫”的应用,需要给一个可以移动的Paint元素指定一张图片,如下图,要把黄点改成其他图片;  Paint所在的类继承于SurfaceView,SurfaceView可以直接从内存等硬件接口获取图像数据,速度很快;然 ...

Android开发——为移动的Paint元素指定图片的方法

 

  最近在写一个类似“围住神经猫”的应用,需要给一个可以移动的Paint元素指定一张图片,如下图,要把黄点改成其他图片;

  Paint所在的类继承于SurfaceView,SurfaceView可以直接从内存等硬件接口获取图像数据,速度很快;然后再implements 一个OnTouchListener接口来监听触摸事件;

 

Android开发——为移动的Paint元素指定图片的方法

 

  最初搜到很多方法,给playground添加图片、给Activity添加图片、另写一个类加载图片。。。全都长篇大论~ 但代码加进去运行总是弹出crash,可能是自己操作存在问题,这些方法都没有实现想要的效果;

  后来发现,只需要在redraw() 函数中添加几行代码即可~

  自己写的图像绘制函数redraw()的代码是这样的,显示一个黄色的圆点:

  public void redraw(){    // 绘制    Canvas c = getHolder().lockCanvas();    //c.drawColor(Color.LTGRAY); // 绘制浅灰色背景界面    c.drawColor(Color.DKGRAY); // 绘制浅灰色背景界面    //c.drawBitmap(resizeBitmap(xrd, getWidth(), getHeight()), 0, 0, null);// 设置背景图片s    size = (ROW / 3) * (getWidth() / 9 - WIDTH);// 将格子向下平移    // 绘制所有的点到Activity    Paint paint = new Paint();    // 开启画面抗锯齿,必须写在点生成之前    paint.setFlags(Paint.ANTI_ALIAS_FLAG);    for (int i = 0; i < ROW-1; i++) {      // 进行奇数行\偶数行的判断      int offset = 0;      if (i % 2 != 0) {        offset = WIDTH /2; // 偶数行宽度缩进半个点      }      for (int j = 0; j < COL-1; j++) {        Dot one = getDot(j, i);          switch (one.getStatus()) {        case Dot.STATUS_OFF:           //paint.setColor(0xFFEEEEEE);// 完全不透明,颜色浅灰色          //paint.setColor(Color.GRAY);// 浅灰色          paint.setColor(Color.rgb(165, 165, 165));          // 设定好颜色之后,开始在 canvas上面绘制, RectF是绘制 椭圆,循环绘制100个          c.drawOval(new RectF(one.getX()*WIDTH+offset, one.getY()*WIDTH,              // 右侧边界              (one.getX()+1)*WIDTH+offset, (one.getY()+1)*WIDTH), paint);          break;        case Dot.STATUS_ON: // 路障颜色          //paint.setColor(0xFFFFAA00); // 0xFF透明度 FFAA00黄色          paint.setColor(Color.rgb(147, 117, 27));          c.drawOval(new RectF(one.getX()*WIDTH+offset, one.getY()*WIDTH,            // 右侧边界            (one.getX()+1)*WIDTH+offset, (one.getY()+1)*WIDTH), paint);          break;        case Dot.STATUS_IN:          paint.setColor(Color.YELLOW);          c.drawOval(new RectF(one.getX()*WIDTH+offset, one.getY()*WIDTH,              // 右侧边界              (one.getX()+1)*WIDTH+offset, (one.getY()+1)*WIDTH), paint);//          paint.setColor(getResources().getColor(android.R.color.black));          break;        default:          break;        }      }    }

原标题:Android开发——为移动的Paint元素指定图片的方法

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录