在Android上动态添加imageView

2024-06-25

我想显示 HTML 中的图像,并且使用以下命令获取图像 url 源Jsoup。但是,一个问题是每个帖子都有不同数量的图片。 所以,我无法修复 xml 布局中 ImageView 的数量。经过研究,我知道我可以动态创建 ImageView。所以,我创建ImageViews并将它们插入Linearlayout。但是,我只能看到我最后插入的一张图片。

package kr.ac.mju.hanmaeum.activity.notice;

import android.content.Intent;
import android.media.Image;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.util.Log;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import kr.ac.mju.hanmaeum.R;
import kr.ac.mju.hanmaeum.activity.BaseActivity;
import kr.ac.mju.hanmaeum.utils.Constants;


public class NoticeContent extends BaseActivity {
    private String url, title, timestamp, content = "";
    private TextView timestampView, titleView;
    private ImageView contentImageView, contentImageView2;
    private GetImageContentTask getImageContentTask;
    private ArrayList<String> imgList;
    private LinearLayout linearLayout;

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

        // get intent from MainActivity.
        Intent intent = getIntent();
        url = intent.getStringExtra("URL");
        title = intent.getStringExtra("TITLE");
        timestamp = intent.getStringExtra("TIMESTAMP");

        // Set layout contents and I will change this using ButterKnife and detach them to initFunction.
        timestampView = (TextView) findViewById(R.id.contentTimestamp);
        titleView = (TextView) findViewById(R.id.contentTitle);
        contentImageView = (ImageView) findViewById(R.id.contentImage);
        contentImageView2 = (ImageView) findViewById(R.id.contentImage2);

        linearLayout = (LinearLayout) findViewById(R.id.content_Linear);
        imgList = new ArrayList<String>();

        // get title and timestamp from MainActivity.
        titleView.setText(Constants.NOTICE_TITLE + title);
        timestampView.setText(Constants.NOTICE_TIMESTAMP + timestamp);

        getImageContentTask = new GetImageContentTask();
        getImageContentTask.execute();
    }

    class GetImageContentTask extends  AsyncTask<Void, Void, ArrayList<String>> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected ArrayList<String> doInBackground(Void... params) {
            try {
                Document doc = Jsoup.connect(url).timeout(0).get();

                Elements imgs = doc.select("#divView > img");
                for(Element img : imgs) {
                    imgList.add(img.attr("src"));
                }
            } catch(IOException e) {
                e.printStackTrace();
            }
            return imgList;
        }

        @Override
        protected void onPostExecute(ArrayList<String> imgList) {
            super.onPostExecute(imgList);

            for(int i=0; i< imgList.size(); i++) {
                ImageView imgView = new ImageView(NoticeContent.this);
                Glide.with(NoticeContent.this).load(imgList.get(i)).override(200,200).into(imgView);
                linearLayout.addView(imgView);
            }
        }
    }
}

您需要将 LayoutParams 添加到您的 ImageViews 中,如下所示:

       for(int i=0; i< imgList.size(); i++) {
            ImageView imgView = new ImageView(NoticeContent.this);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200, 200);
            imgView.setLayoutParams(lp);
            Glide.with(NoticeContent.this)
                 .load(imgList.get(i))
                 .override(200,200)
                 .into(imgView);
            linearLayout.addView(imgView);
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Android上动态添加imageView 的相关文章

  • Android正则表达式-返回匹配的字符串

    在我的 Android 项目中 我有一个正则表达式和一个字符串 其中应该有匹配的表达式 问题是我只找到了一个matches 方法 返回布尔值 有没有什么东西 只返回匹配的字符串 例如 如果我的字符串是 中午 12 点去商店 我想检查该字符串
  • 在 Android 中录制、保存和播放视频

    我正在尝试制作一个使用相机应用程序录制视频的应用程序 然后将该视频保存在 SD 卡上 以便我可以播放它 我有一些代码 但我不知道如何继续 因为我是 Android 初学者 我的活动 public class Camcorder extend
  • 如何使网页视图与其内容一样大?

    我在网上找不到这个 我有很多网络浏览量HorizontalScrollView 我希望它们全部适合其内容 然后可能具有不同的宽度 更多 我给那些充气webviews像这样 LinearLayout layout LinearLayout g
  • android:onClick 在 xml 中的 menuitem 上设置

    亲爱的 我们可以在 xml 中将 onclick 与菜单项一起使用吗 就像下面一样 我尝试过但它不起作用 menu menu
  • 将长文本分成页面供viewpager使用

    我正在实施中的messureText方法这个问题 https stackoverflow com a 22199847 3930169在 viewpager 中渲染之前将长文本分成指定大小的页面 我正在使用增量字符数进行 while 循环以
  • 覆盖服务 - 按下返回按钮

    我怎样才能做到这一点 目前的解决方案 我启动了一个透明的活动 捕获后按 将其转发到我的服务 然后自行关闭 但此活动将在当前正在运行的活动中可见 因此这不是一个非常漂亮的解决方案 看到的解决方案 我见过一个应用程序确实可以捕获服务中的后按 而
  • 使用 Gradle 构建未签名的 APK

    目前我正在尝试学习 Gradle 来构建 Android APK 如何在 gradle 中设置选项来构建未签名的 APK 您不必设置任何选项 只需运行常规任务即可 gradle assemble 这将在project build apk 中
  • 尝试在空对象引用上调用接口方法“...”

    我正在开发一个具有蓝牙功能的应用程序 我使用片段来扫描并列出蓝牙设备 单击时 会回调提供所选蓝牙设备的主要活动 我从使用 Android 6 API 23 的智能手机开始 然后必须调整代码以用于 Android 5 0 API 21 我刚刚
  • Android 如何知道手电筒是否打开

    我正在使用 CameraManager 和 CameraCharacteristics 我想知道如何检查手电筒是否打开 试试这段代码 public boolean FlashStatus Camera Parameters paramete
  • 在 Android 上以编程方式输入 *#*#4636#*#* 等密码

    在许多 Android 设备上 您可以通过键入以下内容从 电话 应用程序进入秘密设置菜单 4636 http technology headlines com 2010 09 17 4636 android secret codes htt
  • 即使在 Scaffold 中定义了 BottomModalSheet 小部件,Flutter 中也未找到 Scaffold 错误

    我试图为测试应用程序实现 BottomModalSheet 但每次都会弹出同样的错误 说找不到脚手架 该应用程序的代码如下 该错误表明 Scaffold 是由 MaterialApp Widget 实现的 因此我删除了 MaterialAp
  • 如何在改造中在主体内传递 JSON 数组

    intent sale redirect urls return url http example com your redirect url html cancel url http example com your cancel url
  • 画廊新媒体如何播放?

    我试图收到有关添加到手机图库的新图片或视频的通知 我需要获取新媒体的 URI 目的是让我可以自动备份它 因此 我需要一个在后台设置的寄存器来连续侦听或检查添加到图库的新媒体 并捕获 Uri 这过去是通过广播接收器完成的 例如
  • 适用于标准类兼容 USB 设备的 Android USB 主机模式“软模式”驱动程序

    现在既然Android API 支持直接使用 USB 设备 http developer android com guide topics connectivity usb host html 自 3 1 起 我很好奇是否有任何工作可以为一
  • 面临 process.start(); 的问题在 Android 棒棒糖中

    面临一个问题process start 在 Android 棒棒糖中 我在服务中遇到了 android lollipop 后台进程的问题 我的代码在 KitKat 之前工作正常 我有一个ProcessBuilder pBuilder并向其中
  • 是否可以通过 MediaRecorder 或其他类获取当前样本幅度

    我有一个媒体录音机 想要从麦克风录制媒体并获取 它是幅度样本 我想尝试立即获得正确的当前幅度 当调用一些API时 但 MediaRecorde 中只有一个 API 用于获取幅度 getMaxAmplitude 用于获取最大绝对幅度 自上次调
  • 将文本文件写入 SD 卡失败

    我遇到了一个奇怪的问题 我的应用程序可以将一个简单的文本文件写入 SD 卡 有时它对某些人有效 但对其他人无效 我不知道为什么 对于某些人来说 如果他们输入一些字符 例如 在文件等中 我似乎无法重现它 因为我没有遇到任何麻烦 但这是处理文件
  • 错误:未找到 Flutter SDK。在 local.properties 文件中使用 flutter.sdk 定义位置

    ERROR Flutter SDK not found Define location with flutter sdk in the local properties file 我已经导入了 Flutter 示例应用程序mahtab al
  • Android:Html 锚链接仅在 Web 视图中有效一次

    在使用锚链接加载 html 内容时 我在 webview 中遇到一些奇怪的问题 以下代码非常适合锚标记 但是只有一次 第二次当我按下锚标签时不工作 protected void onCreate Bundle savedInstanceSt
  • Ionic 3 Deeplinking - 从 URL 启动应用程序

    我正在使用 Ionic 开发一个跨平台应用程序 当尝试实现深度链接时 我安装了一个名为 Ionic Native 插件深层链接 我运行了这些命令 ionic cordova plugin add ionic plugin deeplinks

随机推荐

  • 如何使用 C# 打开 Putty 会话

    我想知道如何在 Visual Basic Express 中使用 C 打开 putty 然后通过 ssh 会话执行命令 您可以使用 plink exe 进行 SSH 使用 pscp exe 进行 SCP https www chiark g
  • MYSQL:如何从姓氏中找到player_id?

    我现在尝试使用非标准化 摘要 表中的数据填充 testMatch 表 如下 测试匹配表 Field Type Null Key Default Extra match id int 11 NO PRI NULL match date dat
  • Angular 8 @HostListener('window:scroll', []) 不起作用

    我尝试使用 HostListener 跟踪滚动位置以更改标题的颜色 我的标头组件如下 import Component OnInit Input HostListener Inject from angular core import DO
  • Objective C:在 gdb 中哪里可以找到

    我正在尝试使用 NSZombie 调试我的程序 调试器确实返回了存在问题的实例的地址 但是我不确定在哪里获取运行命令 shell malloc history 所需的 pid 谁能告诉我在这种情况下使用的正确 pid 是什么 我尝试了 32
  • 无法从heroku访问API整个JAR已部署

    JAR已成功部署到heroku 来自命令行的消息 偏僻的 https minmint herokuapp com https minmint herokuapp com 部署到 Heroku 我的代码片段 RestController Re
  • 在 C# 中的用户控件中公开并引发子控件的事件

    你好 我有一个包含文本框的用户控件 我想访问文本框的 textchanged 事件 但在用户控件的事件属性中我没有看到文本框的事件 如何使用 C 在 Winforms 中公开公开的 UserControl 公开并处理子控件的特定事件 如果您
  • ConstraintLayout 相对距离百分比 %

    我正在与ConstraintLayout我想设置一个百分比从位于屏幕 52 的按钮 2 到 Textview Sample 的边距顶部 3 当然是相对于屏幕的高度而言的 该位置应该与其他 UI 组件相关 仅从屏幕顶部 或底部 参考指南 可以
  • 如何在 Eclipse PDT 中重新格式化多行注释?

    In Eclipse PDT Ctrl Shift F重新格式化代码 但是 它根本不修改评论 有没有办法将参差不齐的多行注释重新格式化为每行 80 个字符 或其他 即转换 We took a breezy excursion and gat
  • Shopware 6 在计划任务中获取上下文

    我只是想知道如何获取计划任务中的上下文 有静态方法 Context createDefaultContext 但它被标记为内部 我知道不应该创建上下文 而应该从更高的服务传递到您的服务 但这在计划任务中似乎不可能 我想我在 GitHub 问
  • 数据记录的类约束

    我有一个data type data BuildException a KillBuild JobID a Stage FailBuild JobID a Stage CancelBuild JobID a Stage StopBuild
  • Android SearchView 上是否有监听器来通知 SearchView 是否已展开并准备好接受输入?

    当用户未输入任何内容时 我想在 SearchView 中显示一些默认建议 我正在使用矩阵光标手动设置自定义建议适配器 我尝试在 onFocusChange 和 onClickListner 中设置适配器 但建议隐藏在键盘后面 显然建议加载时
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 内存泄漏 - 每个请求命中容器中运行的 Flask API 后

    我有一个 Flask 应用程序在 EC2 上的容器中运行 启动容器时 docker 统计数据显示内存使用量接近 48MB 进行第一次 API 调用 从 s3 读取 2GB 文件 后 使用量上升至 5 72GB 即使 api 调用完成后 使用
  • 使用空子文档集合保存 Mongoose 文档会导致重复键错误

    我有两个猫鼬模式 var productSchema new Schema name type String required true unique true var categorySchema new Schema products
  • 如何使用org.apache.commons包?

    在各种网络示例中 我看到了导入 例如 import org apache commons net ftp FTPClient 我不明白如何使用这些 而且 apache 网站也相当不清楚 我该如何使用这些类 我希望我需要下载一些东西 但如果有
  • 更改 iterm2 中的用户名、主机名和路径颜色

    如何更改 iTerm2 中的用户名 主机名和路径颜色 我正在使用内置的 Solarized 配色方案 In Ubuntu the same built in colorscheme is highlighted like In iTerm2
  • 不同智能手机上的视频观看行为(具有不同的怯场)

    我使用 videoview 或 MediaPlayer 在同一活动的多个视频视图中播放 rtsp 流时遇到兼容性问题 我就这个问题提出了另一个问题here https stackoverflow com questions 21111511
  • 当远程(Http)文件更改时如何执行操作?

    我想创建一个脚本 用于检查 URL 并在远程文件的 Last Modified 标头更改时执行操作 下载 解压缩 我考虑过使用curl 获取标头 但随后我必须将其存储在每个文件的某个位置并执行日期比较 有没有人对使用 大部分 标准 UNIX
  • 调用 logger.setLevel 时使用变量

    有谁知道是否有办法在Python Logging 模块的setlevel 函数中使用变量 目前我正在使用这个 Log logging getLogger myLogger Log setLevel logging DEBUG 但我想要这个
  • 在Android上动态添加imageView

    我想显示 HTML 中的图像 并且使用以下命令获取图像 url 源Jsoup 但是 一个问题是每个帖子都有不同数量的图片 所以 我无法修复 xml 布局中 ImageView 的数量 经过研究 我知道我可以动态创建 ImageView 所以