Android - 以编程方式创建 TextView(或 EditText)并将其设置在屏幕上给出坐标的特定位置

2024-04-23

我正在构建一个 Android 应用程序,用户可以在屏幕上绘制一些对象。一种类型的对象是文本对象。用户通过拖动手指来创建对象,并且该对象显示为可以移动/重塑形状的矩形。当用户点击文本对象时,我启动一个新活动,用户在其中输入文本,我在 onActivityResult 方法上返回该文本。

现在我想显示对象中的文本。我可以从我的文本类中访问矩形的坐标等内容。我本质上想做的是以编程方式创建一个 TextView (或 EditText),并将其边界设置为绘制对象的矩形的边界。有没有一种方法可以帮助我做到这一点?

(另一种方法是在我的文本对象中使用 canvas.drawTextOnPath 方法。但这似乎更复杂,因为我的文本可能会脱离对象,而且我还必须处理多行)

预先非常感谢您!

编辑:尝试 GAMA 的方法

protected void onActivityResult(int requestCode, int resultCode, Intent data) {                 
  switch(requestCode) { 
  case 1:
      if (resultCode == Activity.RESULT_OK) { 
            String text=data.getStringExtra("text");
            System.out.println(text);
            TextView tv=new TextView(this);
            //LayoutParams lp = new LayoutParams(new ViewGroup.MarginLayoutParams((int)texts.get(index).width,(int)texts.get(index).height));
            LayoutParams lp = new LayoutParams(new ViewGroup.MarginLayoutParams(100,100));
            //tv.setLayoutParams(lp);
            //lp.setMargins((int)texts.get(index).Sx, (int)texts.get(index).Sy, (int)texts.get(index).Lx, (int)texts.get(index).Ly);

            tv.setLayoutParams(lp);
            tv.setTextSize(10);
            tv.setTextColor(Color.RED);
            tv.setText(text);
            lp.setMargins(0,0,0,0);
            //tv.setVisibility(View.VISIBLE);
            System.out.println("got "+tv.getText());
            }
      break;
      }
  }  

两张照片均按预期显示文本,但我在屏幕上看不到任何内容(尝试将其设置在左下角)


                    EditText edText = new EditText(this);
            edText .setId(i);
            edText .setLayoutParams(new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
                    1f));

                    edText .setWidth(100);
            edText .setImeOptions(EditorInfo.IME_ACTION_NEXT);
            edText .setInputType(InputType.TYPE_CLASS_NUMBER);
            edText .setKeyListener(DigitsKeyListener.getInstance());
            edText .setMaxLines(1);
                    edText .setOnFocusChangeListener(this);
            edText .setOnEditorActionListener(this);
            edText .addTextChangedListener(this);

                    //this linearlayout id is declared inside your xml file
                        LinearLayout linear=(LinearLayout)findViewById(R.id.linearLayout1);
                        linear.addView(edText );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 以编程方式创建 TextView(或 EditText)并将其设置在屏幕上给出坐标的特定位置 的相关文章

随机推荐

  • geom_tile单色为0,然后是色标

    我想生成一个热图 其中调色板为绿色到红色 但 0 值为白色 我开始了基于因子具有不同高填充颜色的 geom tile 热图 https stackoverflow com questions 10232525 geom tile heatm
  • 使用 PHP 上传 DOC 或 PDF

    我可以很好地上传图像 但是当我将类型从 image jpg image gif 更改为 application msword 和 application pdf 时 它不起作用 这是我的代码 完全相同的代码适用于图像 但对于上传文档和 pd
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • Prometheus - 监控容器中的命令输出

    我需要监控 eks 集群中具有 nfs 挂载路径的许多旧容器 使用 nfs client helm 图表映射容器 i 中的 nfs 目录 我需要监视我的安装路径何时由于某种原因丢失 而我发现做到这一点的唯一方法是在容器中执行命令 bin b
  • List.empty 与 List() 与 new List()

    有什么区别List empty List and new List 我什么时候应该使用哪个 首先 new List 不会工作 因为List类是抽象的 另外两个选项定义如下the List object http www scala lang
  • Android Studio:“创建新 AVD”窗口中禁用“确定”按钮

    我下载并安装了最新的 Android Studio 版本 0 8 6 测试版 但在尝试创建新的 Android 虚拟设备时遇到了困难 我尝试按照以下步骤操作 https developer android com training wear
  • 在 SwiftUI (5) 和 Xcode (12.4) 中实现 AdMob 插页式广告

    我正在努力在我的应用程序中实现插页式广告 但对 AdMob 提供的文档和新的 SwiftUI 应用程序结构遇到了一些困惑 这里是app swift文件 显示我已经实现了 GoogleMobileAds 并在didFinishLaunchin
  • 计算每年的天数

    我有两个约会 begin lt as Date 2007 05 20 end lt as Date 2010 06 13 怎样计算一年有多少天 输出可能应该是这样的 year days 2007 226 2008 366 2009 365
  • Soundcloud:上传曲目后如何立即知道声音云曲目ID?

    http developers soundcloud com docs api http developers soundcloud com docs api 当我查看 API 文档时 我发现 SC stream tracks 293 fu
  • 共享一个类的离散匿名方法?

    我在玩埃里克 利珀特的Ref
  • GAE 30 个子查询限制的解决方法

    我正在编写一个新闻应用程序 我想让我的用户从包含数十个 约 60 个 来源 卫报 泰晤士报 的列表中选择他们最喜欢的新闻来源 我有一个包含索引属性 源 的新闻实体 我正在寻找一种方法 可以让我绕过 App Engine 施加的 30 个子查
  • 两个平面之间的交线

    如何找到两个平面之间的交线 我知道数学思想 并且我做了平面法向量之间的叉积 但如何以编程方式从结果向量中获取行 平面的方程为ax by cz d 0 其中 a b c 是平面的法线 d 是到原点的距离 这意味着满足该方程的每个点 x y z
  • 如何使用 rgdal 包将 NAD 83 坐标转换为纬度和经度?

    我有坐标 所有这些都应该位于 DC 但我不知道如何将它们从 NAD 83 转换为 R 中的纬度和经度 我正在使用spTransform rgdal 包中的函数并收到有关不合格数据的错误 library rgdal nad83 coords
  • Django 1.7迁移找不到应用程序

    我正在为应用程序创建数据迁移Notification 在这里我使用模型的参考 Manager 来自应用程序accounts Manager apps get model accounts Manager 它抛出错误 self code fr
  • 如何获取多个范围并将多个范围的值设置到另一个电子表格

    我想从范围 shUserForm Get Range B14 O100 中记录的内容将所有数据发送到另一个电子表格 我已经实现的是 当我单击或运行脚本时 我只从 B14 014 获取 1 个数据 而不是我希望每个列将其读取为 getRang
  • 更改 datagridview 中图像按钮列中的图像

    只是想知道是否有人曾经设法找到一种方法 模板字段中的 datagridview 图像按钮列 根据不同的行在不同的行上显示不同的图像 行中的某些数据元素 我们的应用程序需要显示一系列 对帐户栏收取的费用将少于 500 500 至 1000 或
  • 如何获取 matplotlib 轴的当前限制?

    Given a matplotlib轴 如何找到其当前的最小和最大限制 例如 正如之前可能设置的那样ax set xscale log xlim xmin xmax ax get xlim ymin ymax ax get ylim
  • 如何使用故事板将两个不同的选项卡栏图标连接到同一视图控制器?

    我的 iPad 应用程序中有一个标签栏控制器 包含 6 个项目 当您点击其中两个图标时 它们将指向同一个视图控制器 该视图控制器有一个将显示的项目列表 它会根据您点击的选项卡栏图标而略有变化 我如何用故事板来设置它 可以将关系两次拖动到同一
  • 如何在 C# (Xamarin) 中使用 setOnTouchListener?

    你能给我一个 C 中 setOnTouchListener 的例子吗 我尝试过这样但我带来了一些错误 Button1 setOnTouchListener new View OnTouchListener public boolean on
  • Android - 以编程方式创建 TextView(或 EditText)并将其设置在屏幕上给出坐标的特定位置

    我正在构建一个 Android 应用程序 用户可以在屏幕上绘制一些对象 一种类型的对象是文本对象 用户通过拖动手指来创建对象 并且该对象显示为可以移动 重塑形状的矩形 当用户点击文本对象时 我启动一个新活动 用户在其中输入文本 我在 onA