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

Hahaha???發表於2020-10-25

使用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執行
在這裡插入圖片描述

執行結果:圖片打了碼,可以看到網格佈局管理器結果出來了,可以將圖片換了看看效果。

在這裡插入圖片描述

相關文章