我的程序以编程方式添加ImageView有什么问题

时间:2013-11-29 13:44:48

标签: android imageview

我正在使用main.xml向我的活动添加小部件,但出于某些原因,我想以编程方式添加imageView,这是我的程序,

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.drawable.building_icon);
        imageView.getLayoutParams().height = 100 ;
        imageView.getLayoutParams().width = 100 ;
        imageView.setBackgroundColor(Color.BLACK);
        FrameLayout fl = new FrameLayout(this); // because I am working with frame layout
        fl.addView(imageView); 
        }

我的imageView没有出现,请我错过哪里?

2 个答案:

答案 0 :(得分:2)

您已创建新的FrameLayout并将ImageView附加到FrameLayout,但您的main.xml未附加任何内容。

要引用FrameLayout fl = (FrameLayout) findViewById(R.id.my_frame_layout); fl.addView(imageView); 中的一个,请执行以下操作:

main.xml

<FrameLayout android:id="@+id/my_frame_layout" ... /> 中定义的位置如下:

{{1}}

答案 1 :(得分:1)

您正在使用setContentView从xml中提升内容,然后创建新的ImageView并将其添加到不属于原始xml的新FrameLayout中。

要将ImageView添加到FrameLayout,您需要先使用FrameLayout获取xml中findViewById的引用:

FrameLayout container = (FrameLayout) findViewById(R.id.frame_layout);

然后您可以使用ImageView向您添加addView

container.addView(imageView);