我需要在图像中发生触摸事件的部分应用一些文本。就像Facebook上的图像标记一样。请提供一些线索如何去做。
到目前为止,我所做的是我从图库加载图片并在图片浏览器上显示。
public class LoadImg extends Activity implements OnTouchListener{
private static int RESULT_LOAD_IMAGE = 1;
float x,y;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
x=0;y=0;
Button buttonLoadImage = (Button) findViewById(R.id.button1);
buttonLoadImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
实现OnTouchListener,我找到了x和y坐标。
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
x=event.getX();
y=event.getY();
return false;
}
但是imageviewer没有任何方法可以在坐标上添加文字。 我不想预设文字/吐司。我希望在用户触摸图像时生成edittext / toast。
答案 0 :(得分:0)
如果你想这样做,可以使用longClickListener并显示带有提示字符串的Toast消息。
Toast viewToast = Toast.makeText(this, "Your tool tip", Toast.LENGTH_SHORT);
yourView.setOnLongClickListener(new OnLongClickListener() {
@Override
public void onLongClick(View v) {
viewToast.show();
}
});
答案 1 :(得分:0)
使用x
,y
获取event.getX()
,event.getY()
个职位。
然后,在这些位置添加textview到布局。像:
TextView tv=new TextView(this);
使用x
,y
值
LinearLayout.LayoutParams trparams = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
trparams.leftmargin=x;
trparams.topmargin=y;
tv.setLayoutParams(trparams);
然后将此textview添加到布局中。