场景

效果

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新建Android项目,首先打开activity_main.xml

使用XML设置页面

将其布局改为GridLayout,并设置其行数为3,列数为4,以及设置其id。

    android:rowCount = ""
android:columnCount = ""
android:id="@+id/gridLayout"

使用Java代码设置页面

首先将要显示的照片复制到res/drawale下

原本要显示12张,应该要复制12张照片,这里只复制了一张。

打开MainActivity.java

先声明一个ImageView数组和图片路径数组。

    private ImageView[] img = new ImageView[];
private int[] imagePath = new int[]{
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1,
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1,
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1
};

然后在其OnCreate方法中

        //获取layout
GridLayout layout = (GridLayout) findViewById(R.id.gridLayout);
for(int i =;i<imagePath.length;i++)
{
img[i] = new ImageView(MainActivity.this);
//给ImageView设置图片源
img[i].setImageResource(imagePath[i]);
//设置内边距
img[i].setPadding(, , , );
//设置布局参数 即图片 大小
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(,);
img[i].setLayoutParams(params);
//将ImgageView添加到layout上
layout.addView(img[i]);

完整示例代码

package com.badao.layouttest;

import androidx.appcompat.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[];
private int[] imagePath = new int[]{
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1,
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1,
R.drawable.img1,R.drawable.img1,R.drawable.img1,R.drawable.img1
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取layout
GridLayout layout = (GridLayout) findViewById(R.id.gridLayout);
for(int i =;i<imagePath.length;i++)
{
img[i] = new ImageView(MainActivity.this);
//给ImageView设置图片源
img[i].setImageResource(imagePath[i]);
//设置内边距
img[i].setPadding(, , , );
//设置布局参数 即图片 大小
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(,);
img[i].setLayoutParams(params);
//将ImgageView添加到layout上
layout.addView(img[i]);
}
}
}

AndroidStudio中使用XML和Java代码混合控制UI界面实现QQ相册照片列表页面的更多相关文章

  1. 使用xml和java代码混合控制UI界面

    main.xml.................... <?xml version="1.0" encoding="utf-8"?> <Li ...

  2. 使用XML布局文件和Java代码混合控制UI界面

    完全使用Java代码来控制UI界面不仅烦琐.而且不利于解耦:而完全利用XML布局文件来控制UI界面虽然方便.便捷,但难免有失灵活.因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面. 当 ...

  3. 使用xml及java代码混合的方式来设置图形界面

    参考<疯狂android讲义>第2版2.1节 设置android的图形界面有三种方法: 1.使用纯xml文件 2.使用纯java,代码臃肿复杂,不建议使用 3.使用xml与java混合,前 ...

  4. xml与java代码相互装换的工具类

    这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你定义好了xml的模板,就能一键生成java代码.省下了自己再使用工具类写代 ...

  5. js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意

    js  和 css 中 不能使用 jsp  页面中一些 标签 和 java 代码等,应注意 如 ${ }  <%%>  等

  6. 在代码中控制UI界面

    虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面. 实例:用编程的方式开发UI界面 packa ...

  7. 在xml中调用自己用java代码定义的View

    1.在res中new一个class继承view.View,重写ondraw方法,写出自己的view package com.zzw.myView; import android.content.Con ...

  8. Android学习笔记(9):使用XML文件和Java代码控制UI界面

    Android推荐使用XML文件设置UI界面.然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller.是模型(model)-视图(view)-控制 ...

  9. Unity 中调用Android的JAVA代码

    首先我们要创建一个android项目 因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中.接口包的所在地,打开Finder->应用程序->Unit ...

随机推荐

  1. Qt Installer Framework翻译(7-1)

    配置文件 配置文件可自定义安装程序的用户界面和行为.该文件通常称为config.xml,位于config文件夹中. 最小配置文件由一个<Installer>根元素组成,<Name&g ...

  2. 6、python基本数据类型之序列类型

    前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍序列类型及其通用操作. 一.序列类型 1)字符串(str):用单引号('),双引号("),三引号(三单 ...

  3. THU的告诫

    究其原因,还是自己只会OI了.要成为一个合格的选手,是方方面面各个地方都要看的,同时也要自己去实现.快速实现.清晰实现.运行成功. 尤其是各种平时用的东西,不要只会技,还要研其道. 再次警醒,各位同我 ...

  4. django 启动错误:Generator expression must be parenthesized 错误信息:

    错误为: Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x ...

  5. java内存模型梳理

    java内存模型 内存模型和内存结构区别 它们是两个概念. 内存模型是和jvm多线程相关的. 内存结构是指的jvm内存结构. 内存模型的作用 内存模型简称JMM JMM是决定一个线程对共享变量的写入时 ...

  6. Python3 os.path() 模块笔记

    os.path 模块主要用于获取文件的属性. 以下是 os.path 模块的几种常用方法: 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(pa ...

  7. 关于2D渲染的一些小想法

    原文地址 概述 . 这个项目最初的目的是为了尝试解析现有的UI编辑器(MyGUI)导出的UI布局信息,通过ImGUI还原UI渲染.但是在开发过程中,我发现可以借此实现一个编辑器,一个我不断的寻找,但始 ...

  8. HTTP协议简单理解

    1.概念: “超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. 设计HTTP最初的目的是为了 ...

  9. C语言实现银行家算法

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h& ...

  10. AI: 字体设计中的贝塞尔曲线

    http://www.xueui.cn/tutorials/illustrator-tutorials/designers-must-know-the-secret-of-the-bezier-cur ...