XML不灵活
Java太复杂
布局和简单组件代码放在XML中
复杂的组件放在Java代码中
修改初始化的activity_main.xml为下面的xml文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:id="@+id/layout" 6 android:orientation="horizontal" 7 android:rowCount="3" 8 android:columnCount="4" 9 android:layout_width="match_parent" 10 android:layout_height="match_parent" 11 tools:context=".MainActivity"> 12 13 </GridLayout>
设置 MainActivity.java 文件
package com.example.java_and_xml_ui; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.GridLayout; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ImageView[] img = new ImageView[12]; private int[] imgPath = new int[]{ R.mipmap.img01, R.mipmap.img02, R.mipmap.img03, R.mipmap.img04, R.mipmap.img05, R.mipmap.img06, R.mipmap.img07, R.mipmap.img08, R.mipmap.img09, R.mipmap.img10, R.mipmap.img11, R.mipmap.img12, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setContentView(R.layout.activity_main); GridLayout layout = findViewById(R.id.layout); for(int i=0; i<imgPath.length; i++) { img[i] = new ImageView(MainActivity.this); img[i].setImageResource(imgPath[i]); img[i].setPadding(2, 2, 2, 2); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(300, 120); // 设置图片的宽度和高度 img[i].setLayoutParams(params); layout.addView(img[i]); } } }
神坑, 添加图片到数组的时候, 一直出错, 最终发现是因为我的图片的资源的名字是01.jpg, 02.jpg......
android studio要求图片的名称必须是字母开头的.......
我把资源的名称前加上img, 就可以通过了.