Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将图像添加到android触摸屏布局中的触摸位置_Android - Fatal编程技术网

将图像添加到android触摸屏布局中的触摸位置

将图像添加到android触摸屏布局中的触摸位置,android,Android,当我在屏幕上触摸x y位置时,我需要在该特定位置添加一个图像。 我尝试实现ontouch listener,但它将图像添加到不同的位置,许多图像出现在多个触摸屏上。我想要一些东西,比如我触摸过的地方,相同的图像应该出现在那里 请帮助我,我是一个新的机器人在一个公司的项目工作 这是我的活动代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

当我在屏幕上触摸x y位置时,我需要在该特定位置添加一个图像。 我尝试实现ontouch listener,但它将图像添加到不同的位置,许多图像出现在多个触摸屏上。我想要一些东西,比如我触摸过的地方,相同的图像应该出现在那里 请帮助我,我是一个新的机器人在一个公司的项目工作

这是我的活动代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final RelativeLayout rl = (RelativeLayout) findViewById(R.id.wwcontainer);
    //Set On TouchListner to the Layout
            rl.setOnTouchListener(new View.OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    Log.i("OnTouch", "On Touch View Group....");
                    int x = (int) event.getX();
                    int y = (int) event.getY();

                     ImageView imageView = new ImageView(getApplicationContext());
                     imageView.setImageResource(R.drawable.icon);
                     imageView.setLayoutParams(new LayoutParams(x,y));
                     rl.addView(imageView);
                    return true;
                }
            });
}
我知道拖放,我不想拖放,我需要触摸任何应该出现图像的地方。触摸位置请帮助我,你需要使用而不是相对位置


要在特定的x,y位置添加图像,需要绝对布局。

是否检查了getX()和getY()返回的int值,我认为它将返回0,0


请将event.getRawX()和event.getRawX()用于实际触摸位置。我希望这会有所帮助。

我也有同样的要求,这就是我所做的,它对我来说非常有效

final RelativeLayout rr = (RelativeLayout) findViewById(R.id.rr);
    rr.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                int x = (int) event.getX();
                int y = (int) event.getY();
                RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.WRAP_CONTENT,
                        RelativeLayout.LayoutParams.WRAP_CONTENT);
                ImageView iv = new ImageView(getApplicationContext());
                lp.setMargins(x, y, 0, 0);
                iv.setLayoutParams(lp);
                iv.setImageDrawable(getResources().getDrawable(
                        R.drawable.gr1));
                ((ViewGroup) v).addView(iv);
            }
            return false;
        }
    });
这将把图像放在相对坐标上,你们从那个里开始接触坐标。若你们想把新的图片放在你们接触到相对物的地方,你们需要计算图片的高度和宽度,并把我的代码中的一行改为

lp.setMargins(x - yourImageWidth/2, y - yourImageHeight/2, 0, 0);

+谢谢你的回答。我想补充一点,如果你想将图像添加到用户触摸的中心,不要使用x-yourImageWidth/2,而要使用x-yourImageWidth,并且对高度也要这样做。