如何在Android应用程序中的背景布局之上以编程方式将imageView嵌套在另一个imageView中

时间:2013-11-13 10:06:37

标签: android android-layout imageview

我正在尝试将ImageView嵌套在背景布局之上的另一个ImageView之上。换句话说,我希望嵌套的ImageView变得像父imageView的子项并在顶部绘制。这需要在单击最顶层ImageView时发生,因此它不仅仅是我可以在xml中设置的内容。问题是我甚至无法从程序开始就将顶层ImageView嵌套在父ImageView中。它只显示在屏幕的左上角,而不是显示在父ImageView的中间(大约位于屏幕的中心)。我很感激有人可以向我指出我的代码存在什么问题。

以下是主要活动的代码:

package com.cannibal_photographer;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); 

    FrameLayout main = (FrameLayout)findViewById(R.layout.activity_main);
    LayoutInflater li = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ViewGroup boatview = (ViewGroup) li.inflate(R.layout.boatlayout,main,false);
    View personview = li.inflate(R.layout.personlayout,boatview,false);

    ((ViewGroup) main).addView(boatview);
    ((ViewGroup) boatview).addView(personview);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

1 个答案:

答案 0 :(得分:0)

您可以在RelativeLayout中设置两个图像。在代码中获取对两个ImageView的引用,将内部图像可见性设置为xml中的View.GONE,并在单击外部图像后将其设置为View.VISIBLE。