java - 如何在手指触摸时创建 ImageView?

标签 java android imageview

我有一个带有RelativeLayout 的 Activity ,并且其中有一个现有的ImageView。我想做的是允许用户在触摸屏幕的地方创建一个小图片。我想创建图像的过程是这样的:

ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.something);

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.RelativeLayout01);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
 );
layoutParams.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

relativeLayout.addView(imageView, layoutParams);

获取坐标的过程 - 像这样:

@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();

switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    case MotionEvent.ACTION_MOVE:
    case MotionEvent.ACTION_UP:
}

return true;
}

但是如何将它们结合起来呢?如何将这些坐标设置为新的 ImageView?预先感谢您。

最佳答案

尝试一下:

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;
    }
});

我没有测试它,但它应该可以工作。

关于java - 如何在手指触摸时创建 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62268056/

相关文章:

java - 即使它是 tomcat 中的默认端口,也会出现没有端口号的错误?

java - 如何同步 GUI 元素?

android - 从 OBD 适配器读取 VIN

android - 错误 : unknown type name 'class' NDK CDT JNI

android - 在小部件中动态设置 ImageView 的圆角?

java - 实例变量的正确命名约定是什么?

Android Espresso : Test filtering is not supported for given version of JUnit. 请将 JUnit 版本升级到至少 4.6

ios - 首次加载时 SDWebImage 单元格 ImageView 大小错误

c# - Xamarin C# - 如何从变量以编程方式引用资源文件

java - 在远程 Tomcat 上自动部署 Java 应用程序