如何在 imageView 点击时全屏显示 imageView?

2024-04-26

我从 url 获取图像并将其显示在 imageView 上。该功能运行正常。但我希望当我单击该图像时,它必须是全屏的。那么如何实现这个功能呢?我知道我错过了一些东西。请帮我。附有屏幕截图。我也希望我的应用程序具有相同的功能。

这是我的代码,我正在尝试单击图像:

    @Override
    public void onClick(View v) {
        if (isTouch1) {
            horizontalScrollView.setVisibility(View.GONE);
            isTouch1 = false;
            // mSystemUiHider.toggle();
            setTheme(R.style.FullscreenTheme);
            Log.d("Here isTouch is true", ">");
            // ChangeThemeUtils.changeToTheme(FullScreenImageAdapter.this, ChangeThemeUtils.THEME_HIDE_ALL_WINDOW);
            getSupportActionBar().hide();

        } else {
            isTouch1 = true;
            horizontalScrollView.setVisibility(View.VISIBLE);
            getSupportActionBar().show();
            setTheme(R.style.ExampleTheme);
            //mSystemUiHider.show();
            Log.d("Here isTouch is false", ">");    
        }
    }

您可以使用图像视图 https://developer.android.com/reference/android/widget/ImageView.html以下两个属性可根据您的要求显示图像:

  1. android:调整ViewBounds https://developer.android.com/reference/android/widget/ImageView.html#attr_android:adjustViewBounds:如果您希望 ImageView 调整其边界以保留其可绘制的宽高比,请将此设置为 true。

  2. android:scaleType https://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType:控制如何调整图像大小或移动图像以匹配此 ImageView 的大小

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_launcher"/>
    

以上两个属性可以使用 xml 或 java 代码。

由于您需要在运行时决定是否需要全屏显示图像,因此将在 java 代码中应用上述两个属性,如下所示:

public class MainActivity extends Activity {

    ImageView imageView;

    boolean isImageFitToScreen;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = (ImageView) findViewById(R.id.imageView);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isImageFitToScreen) {
                    isImageFitToScreen=false;
                    imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
                    imageView.setAdjustViewBounds(true);
                }else{
                    isImageFitToScreen=true;
                    imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                }
            }
        });

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

如何在 imageView 点击时全屏显示 imageView? 的相关文章

  • Visual Studio 不允许我在 Android 物理设备上进行调试

    我正在使用 Xamarin 和 Visual Studio 2013 开发 Android 应用程序 我已将 Android 小程序连接到计算机 Sansung Kies 识别了该设备 Adb 也能识别它 因为当我输入 adb device
  • 通过数据绑定将字符串传递到包含的布局不起作用

    我正在尝试使用 Android 数据绑定功能将一个简单的字符串从我的主布局传递到布局 它编译得很好 但传递给包含的值实际上并未传递 即 它没有出现在我的布局中
  • 已发布的 Flutter 应用程序在启动时崩溃

    编辑 此问题的解决方案是将您的 flutter 版本升级到较新的 dev 版本 then 1 7 0 您还可以上传单独的 APK 版本 但我个人不喜欢这个选项 请确保您没有从 flutter github 开发存储库下载 错误的构建 因为那
  • 关闭 Android 中的飞行模式

    如果 num gt 50 我想关闭飞行模式 我实现了这段代码 来自在 Android 中切换飞行模式 https stackoverflow com questions 5533881 toggle airplane mode in and
  • Android KeyBoard.Key 禁用图标 预览特殊键?

    我通过实现 KeyboardView OnKeyboardActionListener 接口来自定义自己的软键盘 按下按键时 将显示预览弹出窗口 我的问题是如何禁用 SHIFT 和 DELETE 等特殊键的预览弹出窗口 我尝试将 andro
  • AppCompat v21 工具栏更改徽标大小

    我正在从以前的操作栏迁移到 appcompat v21 中的新工具栏功能 我仍然想将徽标保留在操作栏 工具栏 的左上角 为此 我在布局中添加了支持工具栏 并为其创建了一个新的工具栏 app theme style NewToolBarSty
  • Android Studio:lambda 不起作用[重复]

    这个问题在这里已经有答案了 当尝试使用 lambda 表达式时 我遇到了一些 Gradle 构建错误 错误 41 100 错误 source 1 7 不支持 lambda 表达式 使用 source 8 或更高版本来启用 lambda 表达
  • 如何使用闹钟音量和 setAudioAttributes 来播放铃声?

    所以我正在尝试了解音频属性 这是我到目前为止所拥有的 alarm getSound will return a proper URI to pick a ringtone Ringtone tone RingtoneManager getR
  • Android中不同线程的数据库访问

    我有一个在 AsyncTasks 中从互联网下载数据的服务 它解析数据并将其存储在数据库中 该服务持续运行 当服务写入数据库时 活动会尝试从数据库中读取更改 我有一个数据库助手 有多种写入和读取方法 这会导致问题吗 可能尝试从两个不同的线程
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • 加快 ImageView 中的缩放功能

    我目前正在处理非常大的图像 7 10mb 由于多种原因无法调整大小或压缩 现在 我们的想法是在自定义 ImageView 中显示它们 使用户能够进行双击缩放 捏合缩放等 我使用这个库来完成这项工作 https github com Mike
  • 如何在android中的操作栏中创建Edittext?

    我们可以在操作栏中使用编辑文本吗 在阅读了 Google 中的大量资源后 我找不到如何在操作栏中创建编辑文本 谁能告诉我该怎么做 您可以设置自定义View为了ActionBar像这样 getActionBar setCustomView R
  • 检测 ListView(或 ScrollView)内的滚动位置

    我正在构建一个聊天室应用程序 其中每 X 秒就会轮询一次新事件 每次发生这种情况时 此代码都会使用新数据更新 RoomAdapter ArrayAdapter 的自定义子类 并将其滚动到底部 RoomAdapter adapter Room
  • 在 Android 中上传文件出现内存不足错误

    我的上传代码如下 String end r n String twoHyphens String boundary try URL url new URL ActionUrl HttpURLConnection con HttpURLCon
  • Android - iphone 风格 tabhost [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • 如何在Android中解析xml类型的HTTPResponse

    我有一个 Android 应用程序 我使用 POST 方法来获取响应 这是我的代码 HttpResponse httpResponse httpclient execute httppost HttpEntity resEntity htt
  • Android 中的 Google Places API - 适用于个人用户的 API_KEY

    我已经浏览了与在 Android 应用程序中使用 Places API 相关的 Android 文档和其他博客 到处都建议使用 API KEY 来调用 REST 服务 API KEY 在整个项目 应用程序中都是相同的 每天的请求数限制为 1
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • Android ADT Eclipse 插件,parseSDKContent 失败

    我刚刚设置了我的第一个 Android 开发环境 其中包括 日食3 5 Mac OS X 10 5 适用于 x86 mac 的 Android SDK ADT Eclipse 插件 0 9 6 我已将 set PATH 设置为我的 SDK

随机推荐

  • Clojure 函数 - 返回最后一条语句之前计算的值

    我有一些用 Clojure 编写的测试 这是一个简单的例子 defn test1 start server run pvt and expect PVT 0 stop server 我想返回 run pvt and expect 的结果 但
  • 使用bulk_insert_mappings

    我正在尝试批量插入以下形式的大量字典列表 results attribute u SEX value d 0 0 value s u M sid 1L attribute u SEX value d 0 0 value s u M sid
  • PlantUML 和 Graphviz 插件设置 PHPstorm

    我已经设置好了PlantUML插件PhpStorm 我已经下载了图形可视化 2 36并安装在我的机器上 我已经搜索过如何设置Graphviz为了使用PlantUML做一个UseCase in PhpStorm 但我找不到任何信息 我不太清楚
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 关闭 genymotion 模拟器的正确方法是什么?

    有趣的是 我总是通过关闭模拟器的窗口 右上角的 X 是的 来关闭它 现在 如果在此期间模拟器中没有任何内容损坏 我会以某种方式感兴趣 令人惊讶的是 谷歌搜索不到任何关于这一点的信息 我有同样的问题 Windows 8 1 GenyMotio
  • 从黑莓中的url获取数据

    我有一个文件的网址 http www example com 123 aes 它包含超过2MB的mp3文件的数据 现在我想从这个网址获取数据 当我尝试 http 连接来获取数据时 它显示错误 请求的实体太大 如何解决这个问题呢 我的代码如下
  • 使用python在scattermapbox中围绕点绘制多边形

    我在用散点图箱 https plotly com python scattermapbox 在地图上绘制点 我想画出覆盖的多边形 x milePOI 的半径 dcc Graph id map graph application callba
  • Go 中带有 TTL 选项的映射

    我需要构建这样的数据结构 map string SomeType 但它必须将值存储大约 10 分钟 然后从内存中清除 第二个条件是记录数量 它必须是巨大的 该数据结构必须至少添加每秒 2 5K 条记录 那么 Go 中最正确的实现方法是什么
  • HTML 5 视频拉伸

    您能让视频 拉伸 到视频元素的宽度和高度吗 显然 默认情况下 视频会按比例缩放并适合视频元素 thanks 我已经使用 object fit fill in CSS 进行了测试 效果很好 video object fit fill 来自 M
  • 泽西岛 java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

    我正在尝试使用 jersey 库使用 Tomcat 和 Eclipse 制作一个 Web 服务 这是我的服务类别 package com gontuseries university import javax ws rs core Medi
  • 如何在 symfony 5 中将所有 Http 异常格式化为 json?

    在 symfony5 控制器中 我可以通过以下方式返回 json 响应 return this gt json key gt content 然而 当我抛出 HttpException 时 我会在开发和生产中看到默认的 html 错误页面
  • 存储过程执行需要时间

    我在 SQL Server 中面临一个非常奇怪的问题 我有一个存储过程 并且我正在从 C 代码执行该过程 该过程将返回一个数据表 数据集 我的问题是 C 代码 ADO NET 代码的执行过程花费了太多时间 大约 2 分钟 但是当我从 SQL
  • 在数据库中存储非常大的文件

    在数据库中存储大文件 大约 100 GB 是个好主意吗 目前我们考虑使用NBT格式或使用mysql postgresql数据库将数据保存在文件夹中 数据库旨在对大量小数据进行排序 过滤和执行计算 如果您只想拥有一个文件系统 例如 对聚合按上
  • 单击 CheckBox 中的 ClickableSpan 会更改其状态

    我的复选框中有一个 ImageSpan 和 ClickableSpan 用于在复选框文本末尾显示图标并处理单击它 但是单击它会更改复选框的选中状态 这是不需要的 当用户单击 ClickableSpan 时 如何防止更改复选框状态 只是我需要
  • pdfptable的不可见边框

    我正在使用 iText 库在 Java 中生成 pdf 文件 我正在 pdfptable 中写入数据 如何使表格边框不可见 PdfPTable 的边框元素由添加到表中的 PdfPCell 定义 每个单元格都有自己的样式 格式 这是 API
  • 如何使用yarn工作空间从monorepo中的nodejs项目构建docker镜像

    我们目前正在与我们的团队一起研究网站的 CI CD 我们最近还适应了 monorepo 结构 因为这使我们的依赖关系和概述变得更加容易 目前测试等已为 CI 做好准备 但我现在正在部署 我想创建所需包的 docker 镜像 我考虑过的事情
  • Xcode 4.5 背景图像 iPhone 4、4s、5

    我在 viewController m 中编写了后台代码 self view backgroundColor UIColor colorWithPatternImage UIImage imageNamed image png 我有不同图片
  • 结构化数组的掩码是否应该自行结构化?

    我正在调查numpy 问题 2972 https github com numpy numpy issues 2972以及几个相关的问题 事实证明 所有这些问题都与数组本身是结构化的情况有关 但它的掩码不是 In 38 R numpy ze
  • 更改一个 y 轴的范围 nvd3/d3

    我目前正在使用 multiChart 模型 并且有两个不同的 y 轴 我想更改两个轴 使它们从 0 开始 因为目前它们从最小的 y 数据点开始 我尝试过执行以下操作 chart yAxis1 tickFormat d3 format f d
  • 如何在 imageView 点击时全屏显示 imageView?

    我从 url 获取图像并将其显示在 imageView 上 该功能运行正常 但我希望当我单击该图像时 它必须是全屏的 那么如何实现这个功能呢 我知道我错过了一些东西 请帮我 附有屏幕截图 我也希望我的应用程序具有相同的功能 这是我的代码 我