通过触摸在屏幕上放置图形

问题描述

是否可以通过触摸屏幕将所选图形放置在应用程序屏幕上(图形应位于被触摸的位置)?图在可绘制文件夹中。

board.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v,MotionEvent event) {


//                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//                    v.requestPointerCapture();
//                }

                int touchX = (int) event.getX();
                int touchY = (int) event.getY();
                





                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        Log.d("TAG","touched down: (" + touchX + "," + touchY + ")");
                        break;
                    case MotionEvent.ACTION_MOVE:
                        Log.d("TAG","moving: (" + touchX + "," + touchY + ")");
                        break;

                    case MotionEvent.ACTION_UP:
                        Log.d("TAG","touched up: (" + touchX + "," + touchY + ")");
                        break;
                }
                return true;
            }
        });

解决方法

我有一个解决方案:

RelativeLayout.LayoutParams lp =new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);; //Assuming you use a RelativeLayout
                ImageView iv=new ImageView(getContext());
                lp.setMargins(touchX,touchY,0);
                iv.setLayoutParams(lp);
                iv.setImageDrawable(getResources().getDrawable(R.drawable.blackstone,null));
                ((ViewGroup)v).addView(iv);

但是当我触摸屏幕时,应用崩溃了,出现了以下错误:

java.lang.ClassCastException:androidx.appcompat.widget.AppCompatImageView无法转换为android.view.ViewGroup

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...