在android中的imageview上绘制文本或符号

时间:2012-12-04 05:17:04

标签: android image touch android-imageview

我正在开发一款应用程序,需要使用mee来允许用户在显示的图像上绘制任何文本 我无法获得正确的术语来搜索网络 - 如果我称之为感知或称之为触摸事件或者它是什么样的手势应用程序。
确切地说,我想让用户在图像上涂抹任何东西或绘制任何东西 我有一些想法,比如它可以使用画布或一些叠加元素,但没有什么具体的。

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

1 个答案:

答案 0 :(得分:0)

好吧回答我自己的第一个问题:) 实际上我无法直接找到解决方案 - 但至少发现了两种方法。

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

    `public boolean onTouch(View v,MotionEvent event){

    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;
    

    }`

  2.   

    Paint paint = new Paint();

         

    paint.setColor(Color.GREEN);

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

    1. 第二种方法很简单 - 创建一个扩展ImageView的新类(cal it MyImageview)。 现在在您的活动类中,创建MyImageView和setContentView(myImageView(this))的对象并附加setOnTouchListener(this);,实现上面指定的onTouch方法,这样就可以了。