在XML中或以编程方式创建视图之间的位置差异

时间:2016-01-29 20:46:00

标签: java android xml imageview position

创建一种视图时遇到了麻烦。我们只是说我试图创造类似于时钟的东西。这意味着我们必须将数字定位在距离中心的距离和角度上。

我试图模仿一种定位两个元素的方法。中心ImageView和时钟编号。在XML中,我有类似的东西:

# config/application.rb
config.generators do |g|
  g.fixture_replacement :factory_girl, dir: "/spec/factories"
end

它运作良好,图像按原样设置,完全居中于第一张图像(ivCenter),并从中心取一些边距以定位第二张图像。

现在我必须以编程方式执行相同操作,以便创建大量模拟数字的imageView。所以我有这个代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lyt_rootView"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/ivCenter"
        android:background="@drawable/cid"/>

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/ivNumber"
        android:background="@drawable/add_big"
        android:layout_marginLeft="-50dp"
        android:layout_marginTop="50dp"/>

</RelativeLayout>

但结果与XML示例不相似。我不知道自己错过了什么。以编程方式创建视图的结果是两个imageView正在尝试定位在屏幕的中心空间中,使第一个图像不以屏幕为中心。

我失踪了什么?

1 个答案:

答案 0 :(得分:0)

最后,我通过创建一个以XML为中心的单像素布局来解决它,该布局充当参考并以编程​​方式在该参考视图中添加视图。