设置内容视图层次结构

时间:2013-05-18 16:36:34

标签: java android android-layout imageview relativelayout

我正在开发一个实现简单指南针的应用程序。

我在扩展ImageView的类(Rose.java)中创建和操作指南针。

在我的主要活动中,我想将rose对象添加到布局中,我有这个代码

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
  sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

  rose = new Rose (this);


  setContentView(rose);
  }

正如您所知,通过使用setContentView," rose"将是全屏,布局的其余元素不会显示。

我特意要求一个替代方法,将玫瑰对象添加到布局中而不忽略其余元素。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以在xml中分配说LinearLayout的宽度和高度。

在xml文件中定义LinearLayout并定义所选的宽度和高度。将布局放在您喜欢的位置。将自定义视图的内容添加到LinearLayout

   setContentView(R.id.activity_main);
   LinearLayout ll =  (LinearLayout) findViewById(R.id.linearlayout);
   rose = new Rose(this);
   ll.addView(rose);

示例:

actiivty_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
 >
   // Other views like textview's and button above linear layout

   <LinearLayout
       android:layout_width="40dp" // mention the width of you choice
       android:layout_height="40dp"  // // mention the height of you choice
       android:layout_above="@+id/button1"
       android:layout_alignParentRight="true"
       android:id="@+id/linearlayout"
       >
   </LinearLayout>
        // other views below linear layout
</RelativeLayout>