以编程方式将多个图像添加到LinearLayout

时间:2017-11-07 16:52:06

标签: java android imageview android-linearlayout

我正在尝试将多个ImageView添加到LinearLayout。 LinearLayout在xml中定义,但我试图用代码创建ImageViews。到目前为止,我的代码只是在中间生成一个图像,即使我试图多次添加视图。 这是我的主要方法:

public class MainActivity extends AppCompatActivity {

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

    LinearLayout lay = (LinearLayout)findViewById(R.id.layout);
    ImageView[] views = new ImageView[10];
    for (int i=0;i<10;i++){
        views[i] = new ImageView(this);
        views[i].setImageResource(R.drawable.redeight);
        lay.addView(views[i]);
    }
}
}

这是xml:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/layout"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 </LinearLayout>

1 个答案:

答案 0 :(得分:2)

试试你的循环

ImageView iv = new ImageView(this);
ViewGroup.LayoutParams params = iv.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT; // Or a custom size
params.width = ViewGroup.LayoutParams.WRAP_CONTENT; // Or a custom size
iv.setLayoutParams(params);
iv.setImageResource(R.drawable.redeight);

views[i] = iv;
lay.addView(iv);