【问题标题】:iOS to Android: How to display a TextViewiOS 到 Android:如何显示 TextView
【发布时间】:2011-08-12 16:36:36
【问题描述】:

我有 iPhone 开发方面的背景,这可能是我对 Android 的一些困惑的原因,因为我是开发新手。

我的问题是:如何创建两个TextViews,并指定它们在屏幕上的确切位置?例如,在 iPhone 上,我会创建一个 UILabel,生成一个指定标签大小和位置的矩形框,然后将此矩形设置为 UILabel 的 frame 属性。

如果您能帮助我了解与 Objective C 和 iOS 的 UILabel 的相似之处,那将是最有帮助的。

【问题讨论】:

  • 您的问题的要点是如何在屏幕上以绝对位置定位 2 个动态创建的文本视图?你能分享一下你为什么决定不使用 LinearLayout 等的用例吗?
  • :) :) 好吧,我是 Android 开发的文盲,我的目标只是在屏幕上设置两个文本标签
  • 我可能想太多了,但听起来我可以看到这个问题的更多内容。你看过线性布局教程developer.android.com/resources/tutorials/views/…吗?除了本教程之外,您还需要什么?
  • 或者我可能需要搜索一本名为“iPhone 开发者的 Android 开发”的书 :-)
  • 为了确保我们走在正确的轨道上,Android 手机没有像 iphone 那样的标准屏幕尺寸。绝对定位似乎不是正确的方法(AbsoluteLayout 已弃用)。您可以尝试使用 RelativeLayout 来实现两个视图之间的某种相关性。除此之外,您可能还需要使用 xml 属性 layout_gravity、gravity、margic 等

标签: android ios textview uilabel


【解决方案1】:

在 Android 上,我们不使用绝对屏幕位置。这是非常不鼓励的。如果您来自 iOS,您会这样想是可以理解的。但是你需要修改你的习惯。

我们使用布局而不是绝对位置,例如LinearLayoutRelativeLayoutFrameLayout。所有这些都允许您动态地安排您的视图。而且在很多情况下,它会自动适应不同设备的屏幕尺寸。

实际上,动态布局并没有什么特别之处。许多主要的 UI 工具包,例如 GTK 或 Qt,都类似地工作。在我看来,像素位置不是一个好主意,除了在 Apple 世界中,操作系统和硬件紧密耦合,但实际上这是一个例外。

因此,在您的情况下,您只需将文本视图放入适当的布局。请阅读有关上述不同类型布局的文档和教程,以确定哪种布局最好。问题是您希望如何将您的观点相对于彼此放置。

【讨论】:

  • “直到现在”iPhone 仍采用单一外形尺寸。在 Android 中,设备的屏幕尺寸不是固定的,并且假设平台可以缩放图形。如果操作得当,应用程序看起来会很不错。
【解决方案2】:

在 Eclipse 中创建一个基本的 Android 项目。您将在项目中拥有一个 main.xml 布局文件。您可以在 Eclipse 中使用 Ctrl+Shift+r 并键入 main.xml 来打开它

在清除其内容后将其复制粘贴到您的 xml 中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:text="TextView One"
        android:layout_height="fill_parent"
        android:layout_weight="1"></TextView>
    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:text="TextView Two"
        android:layout_height="fill_parent"
        android:layout_weight="1"></TextView>
</LinearLayout>

【讨论】:

  • 感谢您提供的代码,@yjw 帮助我快速了解如何开始。
  • 但是..,我们是否需要在 xml 文件本身中完成所有这些操作.. ?我猜那会很乏味..,在实现文件中可能只有两行代码
  • xml 文件的底部有两个选项卡。相反,我建议您在周末观看Marakana.com - Android bootcamp 上的一系列截屏视频。它会让你在 2 天内抢占先机。
  • 谢谢哥们的回复!
猜你喜欢
  • 2017-03-04
  • 2017-03-02
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多