AndroidStudio中使用XML和Java代码混合控制UI界面实现QQ相册照片列表页面
场景
效果

注:
博客:
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相册照片列表页面的更多相关文章
- 使用xml和java代码混合控制UI界面
main.xml.................... <?xml version="1.0" encoding="utf-8"?> <Li ...
- 使用XML布局文件和Java代码混合控制UI界面
完全使用Java代码来控制UI界面不仅烦琐.而且不利于解耦:而完全利用XML布局文件来控制UI界面虽然方便.便捷,但难免有失灵活.因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面. 当 ...
- 使用xml及java代码混合的方式来设置图形界面
参考<疯狂android讲义>第2版2.1节 设置android的图形界面有三种方法: 1.使用纯xml文件 2.使用纯java,代码臃肿复杂,不建议使用 3.使用xml与java混合,前 ...
- xml与java代码相互装换的工具类
这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你定义好了xml的模板,就能一键生成java代码.省下了自己再使用工具类写代 ...
- js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意
js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意 如 ${ } <%%> 等
- 在代码中控制UI界面
虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面. 实例:用编程的方式开发UI界面 packa ...
- 在xml中调用自己用java代码定义的View
1.在res中new一个class继承view.View,重写ondraw方法,写出自己的view package com.zzw.myView; import android.content.Con ...
- Android学习笔记(9):使用XML文件和Java代码控制UI界面
Android推荐使用XML文件设置UI界面.然后用Java代码控制逻辑部分,这体现了MVC思想. MVC全名是Model View Controller.是模型(model)-视图(view)-控制 ...
- Unity 中调用Android的JAVA代码
首先我们要创建一个android项目 因为项目需要使用Unity提供的接口,所以需要将接口classes.jar引入至当前工程但中.接口包的所在地,打开Finder->应用程序->Unit ...
随机推荐
- 基于Bootstrap和Knockout.js的ASP.NET MVC开发实战 关于 拦截器的 学习 部分
先贴一段: 下面贴代码: 上面这段代码呢,有几个点迷糊.可以找找看
- 启动Ubuntu的时候出现黑屏的情况
在启动Ubuntu的时候出现黑屏的情况,是因为升级了内核导致显卡不兼容,启动的时候应该告诉内核不要加载显卡: 在进入系统选择时按e进入编辑 在quiet splash 后面添加 nomodeset 再 ...
- Kdenlive-开始
版权声明:原创文章,未经博主允许不得转载 这是 Kdenlive 系列文章的第一篇 说明 在 Linux 下的视频编辑的软件并不多,作为其中之一的 kdenlive 在网上的教程就更少了.于是自己琢磨 ...
- 双指针,BFS和图论(三)
(一)图论 1.大臣的旅费 很久以前,T王国空前繁荣. 为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任 ...
- SpringCloud与微服务Ⅴ --- Eureka服务注册与发现
一.Eureka是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构 ...
- Iptables和Firewall-selinux
一.Iptables防火墙 ---------- **三表五链:**三表: filter过滤表 nat转换表 mangle表五链: PREROUTING--->在进行路由选择前处理数据包 INP ...
- Web 开发工具类(5) | DateUtils
日期工具类 import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFo ...
- 『开源协议』Creative Commons Attribution 3.0 License . 协议的个人理解,并 转载分享 4000个 精美可商用小图标
为什么会研究 Creative Commons Attribution 3.0 License Creative Commons Attribution 3.0 License 简称 CC3,是 一种 ...
- 小米重新上锁[BL]
解锁一时爽,bug火葬场.废话不多说,直接上教程. 首先安装 线刷工具:http://bigota.d.miui.com/tools/MiFlash2018-5-28-0.zip 解锁工具:http: ...
- 如何快速搭建一个 Node.JS 项目并进入开发?
了解:如何快速搭建一个项目并进入开发? 在此不概述 Node.JS 的历史以及发展过程. 因为之前接触过通过 Java 开发语言,所以明确地知道一个服务器所需的文件,以及一个服务器所需要的操作. 那么 ...