使用XML和Java混合控制UI页面

使用XML和Java混合控制UI页面

在这里插入图片描述
在前面的project中创建一个空的moudle
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将activity_main.xml中的布局管理器修改为网格布局管理器

# 原始代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.MainActivity">

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

# 修改后的代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 

    android:id="@+id/activity_main"
    android:orientation="horizontal" #设置对齐方式水平
    android:rowCount="3" # 网格数三行
    android:columnCount="4" # 网格数四列


    android:layout_width="match_parent" android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.MainActivity">

	# 删除次数原来的text view,不需要
</GridLayout>

在MainActivity.java中设置

# 原始生成代码
package com.example;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

# 修改后的代码
package com.example;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Layout;
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[] iamgepath = new int[]{
            R.mipmap.img1,R.mipmap.img2,R.mipmap.img3,
            R.mipmap.img4,R.mipmap.img5,R.mipmap.img6,
            R.mipmap.img7,R.mipmap.img8,R.mipmap.img9,
            R.mipmap.img10,R.mipmap.img11,R.mipmap.img12,
    };



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

		# 定义一个网格布局管理器对象
        GridLayout layout = (GridLayout) findViewById(R.id.activity_main);
        # 循环将每个图片放进去
        for(int i=0;i<iamgepath.length;i++){
            img[i] =new ImageView(MainActivity.this);
            img[i].setImageResource(iamgepath[i]); # 放入图片资源
            img[i].setPadding(2, 2, 2, 2); #设置内边距(包括上下左右)
            # 定义一个ViewGroup中定义参数,设置图片大小
            ViewGroup.LayoutParams params =new  ViewGroup.LayoutParams(116, 68);
            img[i].setLayoutParams(params); # 传入图片大小参数

			# 一定记得将设置好的图片存放金网格布局管理器
            layout.addView(img[i]);
        }
    }
}

选择该moudle运行
在这里插入图片描述

运行结果:图片打了码,可以看到网格布局管理器结果出来了,可以将图片换了看看效果。

在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页