【问题标题】:Draw text or symbol on imageview in android在android中的imageview上绘制文本或符号
【发布时间】:2012-12-04 05:17:03
【问题描述】:
我正在开发一个需要 mee 以允许用户在显示的图像上绘制任何文本的应用程序。
我无法获得正确的术语来搜索网络 - 我应该将其称为感测还是触摸事件或手势应用程序。
正是我想让用户在图像上涂鸦或绘制任何东西。
我几乎没有什么想法可以使用画布或一些覆盖元素但没有什么具体的。
附: :
我正在使用 android 2.2 作为目标。
我是安卓开发新手。
请帮忙!
【问题讨论】:
标签:
android
image
touch
android-imageview
【解决方案1】:
好吧,回答我自己的第一个问题 :)
实际上我无法直接找到解决方案 - 但至少找到了 2 条出路。
-
您可以拍摄 2 个图像视图。将第一个 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;
}`
油漆油漆 = 新油漆();
paint.setColor(Color.GREEN);
这将有助于在 imageview2 上绘制,但看起来好像是在 imageview1 上绘制的:)
- 第二种方法非常简单 -
创建一个扩展 ImageView 的新类(称为 MyImageview)。
现在在您的活动类中,创建一个 MyImageView 和
setContentView(myImageView(this)) 的对象并附加一个 setOnTouchListener(this); ,实现上面指定的 onTouch 方法,这将正常工作。