如何在android中以编程方式创建GridView图片库?

2023-11-24

我想以编程方式创建 3x3 gridview 来显示图像。我想通过获取屏幕尺寸来设置每个项目的高度和宽度。喜欢:

DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;

然后每一项width = screenWidth/3;

请有人帮助我或一些链接供参考。


这是如何以编程方式创建 gridview 的方法,

    GridView grid = new GridView(this);
    grid.setId(ViewIdentification.getId());
    grid.setLayoutParams(new GridView.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    grid.setBackgroundColor(Color.WHITE);
    grid.setNumColumns(3);
    grid.setColumnWidth(GridView.AUTO_FIT);
    grid.setVerticalSpacing(5);
    grid.setHorizontalSpacing(5);
    grid.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);

将上述视图添加到您的布局中。在这里您可以获得显示器的高度和宽度。

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay()
            .getMetrics(displaymetrics);
int width = displaymetrics.widthPixels;
int height = displaymetrics.heightPixels;

这是适配器类:

public class ImageAdapter extends BaseAdapter {

    private Context mContext;
    private Bitmap[]mis_fotos;

    public ImageAdapter(Context c) {
        mContext = c;    }

    public int getCount() {
        return mis_fotos.length;
        }

    public Object getItem(int position) {
        return position;    }

    public long getItemId(int position) {
        return 0;    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(width/3, height/3));
            imageView.setScaleType(ImageView.setScaleType(ScaleType.FIT_XY));
            imageView.setPadding(0, 0, 0, 0);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageBitmap(mis_fotos[position]);
        return imageView;
    }
}

然后,这取决于您,如果您要传递动态 URL,请相应地更改您的适配器。 将适配器设置为 gridview。 如果您有任何问题,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中以编程方式创建GridView图片库? 的相关文章

随机推荐

  • 闭包在 for 和 foreach 循环中的行为不同

    在 C 中尝试闭包时 我发现如果它们在循环中捕获迭代器变量 它们的工作效果会相当出乎意料 var actions new List
  • 四叉树查找邻居

    我正在寻找一种算法来查找四叉树的邻居 在示例图像中 我得到了红色节点 如何找到蓝色节点 有任何想法吗 有一些已知的算法 去看一下 相泽邦夫等人 四叉树中的恒定时间邻居查找 实验结果 卡斯图里 瓦拉达拉詹 通过四叉树的所有最近邻居 罗伯特 约
  • 为什么我的 golang 通道会出现死锁错误?

    package main import fmt sync func push c chan int wg sync WaitGroup for i 0 i lt 5 i c lt i wg Done func pull c chan int
  • 相对于每组中的值的比例(通过 dplyr)

    我有一组时间序列 我想根据它们在特定时间间隔内的值来缩放它们 这样 每个系列当时都将处于 1 0 并按比例变化 我不知道如何用 dplyr 做到这一点 这是一个使用 for 循环的工作示例 library dplyr data expand
  • iOS11自定义导航栏高度

    首先感谢您来到这里并帮助解决我的问题 谢谢你 在iOS11 beta6中 sizeThatFits 似乎不适用于 UINavigationBar 我注意到 UINavigationBar 结构已通过 Reveal 我的应用程序更改 我已尽力
  • 使用 python range 生成整数递减列表

    这是一个简单的问题 我有 range 1 11 1 这给了我 10 9 8 7 6 5 4 3 2 1 有没有一种 更干净 的方法来生成上述列表 也许只有一个功能 你可以用它range 10 0 1
  • 使用着色器时,在 QGLWidget 中使用 QPainter 而不是 OpenGL

    许多 Qt 特别是 4 6 用户都会熟悉 OpenGL 教程中提供的 Overpainting 示例 我正在尝试做一些非常相似的事情 但使用纯 OpenGL 数据的着色器 而不是旧的固定功能管道 Set background and sta
  • Highstock 在 x 轴上使用数字而不是日期

    我需要在页面上输出一个绘图 我正在考虑海斯托克或 Highcharts 来实现这一点 Highstock 界面更可取 因为导航器窗格在重新缩放后显示了绘图的其余部分 然而 我的绘图在 x 轴上有数字 但没有日期 时间 有没有办法将 High
  • 为什么我在 nginx 反向代理上收到 404?

    下面是我的配置 除了well known路线 我不明白为什么 如果我提出请求http example tech connect我收到 404 如果我向http api example tech我也得到了404 我看不出我哪里出了问题 因为这
  • 如何在 DevOps 生命周期的开发阶段使用 docker?

    我有几个与 Docker 在开发阶段的使用相关的问题 我将提出三种不同的场景来说明如何在开发环境中使用 Docker 假设我们正在 Java 和 Spring Boot 中创建一个 REST API 为此 我需要一个 MySQL 数据库 第
  • 修剪 JavaScript 中的值

    我正在尝试修剪从剑道编辑器获得的文本 如下所示 var html nbsp T nbsp This sample text I get from Kendo editor console log Actual html var text t
  • Http 媒体流服务器

    我使用 RED5 媒体服务器 RTMP 开发了视频流应用程序 需要通过 HTTP 传输实时视频 而不是 RTMP 有开源 HTTP 媒体服务器吗 有没有同时支持RTMP和HTTP的开源服务器 提前致谢 首先 HTTP 和 RTMP 是不同的
  • 如何使用 jQuery SVG 插件设置 SVG 矩形元素的背景图像?

    我使用 keith wood 的 jQuery SVG 插件创建了一个 SVG 矩形 这是代码 svg graph wrapper rect group 0 100 40 20 fill ivory stroke black strokeW
  • spring security 线程中的当前用户

    您好 我在线程范围内使用 Spring Security 时遇到一些问题 System out println User SecurityContextHolder getContext getAuthentication getPrinc
  • 在 Windows 64 位计算机上安装 pyenchant

    我想安装 PyEnchant 进行拼写检查 它需要enchant安装在我的机器上 但我能找到的所有 exe 文件都是针对 win32 系统的 有没有其他方法可以在 Windows 64 位机器上安装它 目前 Enchant 没有 64 位版
  • 名称属性中包含特定文本的复选框的 jQuery 选择器

    我试图在 jQuery 中找到一个选择器 它选择所有作为复选框的输入 并且它们的名称包含特定单词 如 top 或 Top 由于选择其他复选框而遇到麻烦 是否可以使用类似的东西 input name top type checkbox eac
  • Numpy loadtxt:ValueError:列数错误

    文件 TEST txt 的结构如下 a 45 b 45 55 c 66 当我尝试打开它时 import numpy as np a np loadtxt r TEST txt delimiter t dtype str 我收到以下错误 Va
  • 动态添加的 SELECT 元素不会在 Internet Explorer 中触发 onchange 事件

    据我所知 这只在 Internet Explorer 中被破坏 我有一个脚本 可以创建多个动态 元素并为它们添加 onchange 事件 onchange 事件在 Firefox 中触发没有问题 但在 Internet Explorer 中
  • 如何在 PHP 应用程序中供应 bcrypt(我应该)?

    我正在为一个相对成熟的开源PHP项目做出贡献 最近 我发现它将密码存储为纯 MD5 哈希值 这对我来说相当麻烦 我想如果我要修复它 我不妨做对 tm 所以我想使用 bcrypt 首先 我对其他语言的发现 bcrypt ruby似乎使用 Op
  • 如何在android中以编程方式创建GridView图片库?

    我想以编程方式创建 3x3 gridview 来显示图像 我想通过获取屏幕尺寸来设置每个项目的高度和宽度 喜欢 DisplayMetrics metrics context getResources getDisplayMetrics in