以编程方式设置Pre-Honeycomb设备上视图的位置

时间:2014-11-29 18:07:29

标签: android

我正在尝试使用以下代码以编程方式在Android上设置视图的位置:

LayoutParams layoutParams = new LayoutParams(100, 100);
layoutParams.leftMargin = 200;
layoutParams.topMargin = 200;
myView.setLayoutParams( layoutParams ); 

适用于我的Nexus 7和Motorola G设备,但不适用于Android 2.2下的旧设备。 在这些设备上,视图总是设置在屏幕的左上角位置。

我如何在这些设备上做同样的事情?

1 个答案:

答案 0 :(得分:0)

这是解决方案。

XML代码:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id = "@+id/rootView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</RelativeLayout>

Java代码:

    View myView = new View(this);
    LayoutParams layoutParams=new LayoutParams(320,240);
    layoutParams.leftMargin = 50;
    layoutParams.topMargin = 60;
    myView.setLayoutParams(layoutParams);
    myView.setBackgroundColor(Color.YELLOW);
    rootView.addView( myView );

    View myView2 = new View(this);
    layoutParams=new LayoutParams(320,240);
    layoutParams.leftMargin = 200;
    layoutParams.topMargin = 120;
    myView2.setLayoutParams(layoutParams);
    myView2.setBackgroundColor(Color.BLUE);
    rootView.addView( myView2 );

我们需要导入

import android.widget.RelativeLayout.LayoutParams;

一开始我使用FrameLayout而不是RelativeLayout。如果父布局是FrameLayout,似乎无法以编程方式设置Android 2.2视图的位置。

非常感谢你的帮助。