如何创建布局我可以放置任何我想要的地方吗?

时间:2012-02-09 23:38:20

标签: java android xml layout relativelayout

我正在设计一个应用程序,其中有许多图像,按钮和textView散布在屏幕上。目前我正在使用相对布局,因为它似乎是最灵活的。但是,我放置了我的元素,它们的大小仍然局限于与其他元素对齐。更糟糕的是,如果元素改变大小,任何与其对齐的元素也将改变大小。

必须有一个简单的解决方案! Apple的nib文件可轻松执行此操作,轻松拖放到任何位置;但是android似乎卡在限制性表/线性/相对/网格布局中。

如果可能,可以通过eclipse执行解决方案。如果没有,请引导我到相关文档学习通过xml创建我自己的布局,创建一个巨大的网格布局或任何恐怖等待我:) 感谢

3 个答案:

答案 0 :(得分:1)

我认为你想要的是绝对布局,不久之前这些已被弃用了,我很确定你仍然可以通过相对布局做到这一点,你不一定需要将通道与另一个视图对齐,我猜你可以做这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="82dp"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="172dp"
        android:layout_marginRight="84dp"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

我在这里所做的就是将它与父母的一边对齐并在它之间有一个边距

答案 1 :(得分:0)

您可以使用框架布局执行所要求的操作并设置每个对象的位置。但这样做需要您自担风险。 Apple nib文件让你随意放置对象的原因是所有设备的宽高比都是一样的。因此,您的布局可以均匀地向上和向下扩展。

Android是一个更加多样化的生态系统,您应该尝试以包含适应不同屏幕尺寸和方向的布局。

答案 2 :(得分:0)

查看Android custom layoutAndroid - How to draw a letter at a specific point?

您是否计划仅在单个Android设备型号上使用该应用程序?如果是,请检查AbsoluteLayout的替代方案。 (FrameLayout或RelativeLayout)

将“随心所欲”放在任何地方并不是一个好主意,因为Android设备有很多不同的屏幕尺寸和属性。唯一的选择是定义自己的自定义布局。

我实际上非常喜欢Android尝试让您的布局与使用对齐和结构化布局视图的设备兼容的方式。

对Apple来说简单的原因是你只针对iPhone,它在所有设备上都有固定的屏幕属性。

希望它有所帮助。祝你好运。