1

我正在开发一个需要 mee 允许用户在显示的图像上绘制任何文本的应用程序。
我无法找到正确的术语来搜索网络——我应该称之为感应还是触摸事件,或者它是一个手势应用程序。
正是我想让用户在图像上涂鸦或绘制任何东西。
我几乎没有什么想法,比如它可以使用画布或一些覆盖元素,但没有什么具体的。

PS:
我使用 android 2.2 作为目标。
我是android开发的新手。
请帮忙 !

4

1 回答 1

0

好吧,回答我自己的第一个问题 :) 实际上我无法直接找到解决方案 - 但至少找到了 2 条出路。

  1. 您可以拍摄 2 个图像视图。将第一个 Imageview(引用为 imageview1)与图像源分配,然后将第二个 Imageview(引用为 imageview2)放在 imageview1 上,这样它就可以覆盖整个屏幕(填充父级 - 高度和宽度)。
    现在在 .java 文件中,imageview2.setOnTouchListener(this);根据需要分配和覆盖 onLoad() 方法。例如。

    `public boolean onTouch(View v, MotionEvent 事件) {

    int action = event.getAction();
    switch (action) {
    case MotionEvent.ACTION_DOWN:
    
        oldx = downx = event.getX();
        oldy = downy = event.getY();            
        break;
    
    case MotionEvent.ACTION_MOVE:
    
        downx = event.getX();
        downy = event.getY();
    
        canvas.drawLine(oldx, oldy, downx, downy, paint);
        imgvw.invalidate();
    
        oldx = downx ;
        oldy = downy ;          
        break;
    
    case MotionEvent.ACTION_UP:
        upx = event.getX();
        upy = event.getY();
    
        canvas.drawLine(oldx, oldy, upx, upy, paint);
        imgvw.invalidate();
    
        break;
    case MotionEvent.ACTION_CANCEL:
                     // SOME CODE THAT YOU WANNA USE 
        break;
    default:
        break;
    }
    return true;
    

    }`

油漆油漆 = 新油漆();

paint.setColor(Color.GREEN);

这将有助于在 imageview2 上绘制,但看起来好像是在 imageview1 上绘制的 :)

  1. 第二种方法非常简单——创建一个扩展 ImageView 的新类(称为 MyImageview)。现在在您的活动类中,创建一个 MyImageView 对象setContentView(myImageView(this)) 并附加一个setOnTouchListener(this);,实现上面指定的 onTouch 方法,这将正常工作。
于 2012-12-13T11:18:52.390 回答