Gallery is deprecated:Gallery 过期了怎么办?(一)

Android语言基础教程(69)Android高级用户界面设计高级组件之画廊视图:别再让用户左右滑!Android Gallery视图让图片浏览爽到飞起 在Android应用开发中,图片展示始终是一个绕不开的话题。无论是电商应用的商品展示,还是社交媒体的图片流,优雅的图片浏览体验总能提升用户满意度。而Gallery组件,正是Android早期提供的一个强大且独特的水平滚动图片浏览工具。 阅读详情

前段时间就发现Gallery这个控件被无情的打上了过期这个烙印。当时很好奇,谷歌为什么就让它过期了,不过那个时候项目忙就没有仔细去看了,反正过期了还能用,只是不维护了嘛。今天刚好有点时间就翻了翻android SDK文档:

This class was deprecated in API level 16.
This widget is no longer supported. Other horizontally scrolling widgets include HorizontalScrollView and ViewPager from the support library.

啊哦,在API level 16(Android 4.1)就过期了,也就是谷歌不在维护这个类了。谷歌还推荐了可以用HorizontalScrollView 或者ViewPager 来代替它。

首先,先给Gallery默哀一分钟吧,过期了,离死也就不远了。这期,我们先谈谈Gallery为什么会被谷歌判了死刑吧。

网上查了一圈,最后只在stackoverflow找到了一个类似的问题和一个疑似答案的答案,附上问题链接:

        http://stackoverflow.com/questions/11868503/the-type-gallery-is-deprecated-whats-the-best-alternative


简明说下大意:

问:很奇怪这个控件已经过期。
这个控件过期了,HorizontalScrollView 或者ViewPager该换用哪个?

答:我想HorizontalScrollView这个控件最符合你的要求。

我怀疑Gallery过期的原因是因为它的适配器不能合适的转换视图,它每次切换图片时都要新建视图造成浪费太多的资源。

另外你可以选择使用The third part created ecogallery,它克服了gallery不能回收视图的缺点;但不幸的是,通过网络只在pastebin上找到它的有关资料。(这句话无视吧,那个链接访问不了)

通过这段对话,可以推测出gallery的生理缺陷:它每次切换图片时都要新建视图造成浪费太多的资源。很有可能是因为这个原因被谷歌封杀的。对话中还提到了使用第三方gallery控件来解决这个问题。鉴于很多人还在使用gallery,我就把这个ecogallery这个项目地址也贴出来,供大家优化gallery使用。

EcoGallery
Replacement for Gallery widget in Android with View recycling. This originally made by Joseph Earl (details).

Usage:

1- Include 'EcoGallery' android library to your project. (Eclipse project: properties -> Android -> Library - Add)

2- You could declare EcoGallery in the layout xml file, Example:

<us.feras.ecogallery.EcoGallery
android:id="@+id/images"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
/>
3- Use EcoGalleryAdapterView instead of AdapterView.

For a complete tutorial check the wiki.

Sample App

Click here to view the sample app

Change Log:

June 24, 2013

Compiler warnings fixed @mnowrot
Limitation:

The existing implementation assumed that each different position in the adapter resulted in a unique view. The changes are only good if your Gallery contains only one type of item, if not you'll need to add some sort of key based on item type and the amount of that type required.


EcoGallery项目github地址:https://github.com/falnatsheh/EcoGallery/

Gallery is deprecated:Gallery 过期了怎么办?(一)先讲这些了,接下来(二)(三)会详细讲该选用哪个控件来代替gallery和具体的代码。



Android 实现图片轮播的三种方法 光有这些思路和搞懂单个知识的应用是还远远不够的,在Android开源框架设计思想中的知识点还是比较多的,想要搞懂还得学会整理和规划:我们常见的**Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架,**这些都是属于Android开源框架设计思想的。如下图所示:这位阿里P8大佬针对以上知识点,熬夜整理出了一本长达1042页的完整版如何解读开源框架设计思想。 阅读详情

相关推荐

Android ImageView高级实战:从相框堆叠到交互游戏开发

在Android应用开发中,ImageView作为核心UI控件,不仅是静态图片的容器,更是实现动态交互和复杂视觉效果的基础。其scaleType、alpha等属性控制着图片的显示方式,而FrameLayout、ViewPager2等现代布局容器则决定了视图的层级与交互逻辑。理解视图堆叠(Z-order)原理和适配器模式,能够高效管理大量图片资源,构建流畅的相册浏览体验。通过事件监听与图形属性动态控制,开发者可以将简单的图片展示升级为丰富的交互应用,例如实现图片切换动画或构建完整的猜牌小游戏。这些技术广泛应用

weixin_30634661的博客 374

【webUI】gradio基础使用2——Gallery组件显示多张图片

基于python的在浏览器显示多图片显示,本文基于gradio写出最简单形式方便大家修改。后续应用:例如上传一张图片,经过处理,输出查询结果。

进一寸有一寸的欢喜 1万+

VS Code插件发布全流程:从vsce打包到Marketplace上架避坑指南

VS Code插件是扩展编辑器功能的核心技术载体,其发布本质是将本地开发产物标准化为 Marketplace 可索引、可安装、可验证的交付单元。原理上依赖 vsce 工具链完成元数据校验、依赖打包、数字签名与 API 提交,技术价值在于打通开发者能力与全球用户触达的最后通路。典型应用场景包括前端工具封装、团队内部效率组件外溢、以及开源项目生态集成。过程中 Publisher 创建、package.json 字段合规性、TypeScript 编译路径配置(如 main 指向 out/extension.js)

weixin_34375251的博客 442

DeepSeek-Coder-V2:开源代码模型的终极突破指南

还在为代码生成任务发愁吗?想找一个既强大又实惠的AI编程助手?今天就来聊聊DeepSeek-Coder-V2——这个在GitHub上迅速蹿红的开源代码智能模型,看看它如何打破闭源模型的垄断,成为开发者们的新宠。 ## 项目亮点速览 **DeepSeek-Coder-V2**可不是普通的代码模型,它是基于混合专家架构打造的重量级选手,拥有2360亿参数却只激活210亿参数,这种设计让它既强大又高

gitblog_01147的博客 1221

Alteryx实战指南:从桌面工具到生产级数据流水线

Alteryx作为企业级数据准备与自动化分析平台,其核心价值远超可视化拖拽——本质是构建可复用、可审计、可协作的数据流水线。它基于In-DB加速、动态宏(Dynamic Macro)和批处理(Batch Processing)等机制,实现跨源数据接入、语义化清洗、时区归一、特征固化与CI/CD集成。技术价值在于将个人工作流升级为团队级数据资产,支撑金融风控、电商分群、IoT日志分析等高并发、强合规、低延迟场景。本文聚焦真实项目中80%被忽略的隐性知识:连接池配置、Action Tool动态注入、Error

weixin_33704591的博客 456

周立功CAN盒二次开发实录:用QT5.1.0解析汽车CAN报文(附数据可视化技巧)

本文详细介绍了基于QT5.1.0和周立功USBCAN-E-U设备进行汽车CAN总线二次开发的实战过程。核心内容包括利用CANdb++数据库解析原始报文并转换为物理值,以及通过QCustomPlot库实现高性能实时数据可视化,为车载诊断与车联网开发提供了一套完整的工程实践方案。

sugar的博客 1058

Android高级控件系列五之Gallery的使用(已过时)

一、前言: 首先要说的是,这个控件其实是已经过时了的,如果大家对过时的用起来不舒服或者不美观的话,在我的下一篇博客中会给大家带来另一种ViewPager控件的体验,不过Gallery控件在页面展示上的效果的是不如ViewPager的,比如说,在图片的衔接上,Gallery是属于那种拖泥带水的,而ViewPager是干净利落的,因此这也是我为什么说Gallery为什么在某些效果方面不如ViewPa

Apollo 6512

为什么你的SiC MOSFET仿真不准?可能是离子注入的‘沟道效应’在捣鬼(Silvaco BCA模块详解)

本文深入分析了SiC MOSFET仿真中离子注入沟道效应的关键影响,揭示了Silvaco BCA模块在模拟SiC晶向和角度参数时的核心设置要点。通过详细解析晶圆偏切与注入角度的等效关系,提供优化MOSFET沟道区注入仿真的五步实战方法,帮助工程师将阈值电压仿真误差从26%降低到5%以内。

weixin_26789847的博客 410

git 学习之:当 github 的秘钥失效了怎么办,一直没有办法进行clone 和 push;解决办法:添加新的 SSH keys

https://blog.csdn.net/weixin_44394753/article/details/91410463 主要操作步骤 打开 github -> settings -> sshkeys and GPGkeys 在计算机中打开 git bash 输入 ssh-keygen -t rsa -C “xxxx@xxxx.com” (你的邮箱地址) cat ~/.ssh/id_rsa.pub 复制产生的 ssh keys,并粘贴到 github 对应页面位置中,详情参照上面的博客

qq_42902997的博客 1248

从零开始学版图(二)-----------差分放大电路

从零开始学版图

m0_56112720的博客 8562

数据库迁移策略实战:MySQL到PostgreSQL

数据库迁移是一项复杂且细致的任务,需要充分的准备工作、合适的迁移策略和严格的验证与优化步骤。通过选择合适的迁移工具、进行手动迁移和应用程序适配、以及迁移后的验证与优化,可以确保数据迁移的成功和业务的连续性。希望本文的分享能够为大家在MySQL到PostgreSQL的数据库迁移实战中提供一些有用的参考和启示。

shejizuopin的博客 1733

Gallery is deprecated

在学习Gallery控件时,IDE提示已经过期,这是怎么回事呢?又开始搜索大法,说句题外话,百度真心残废,在google上找到这样的一个和我有同样疑问的页面:http://stackoverflow.com/questions/11868503/the-type-gallery-is-deprecated-whats-the-best-alternative         简单翻译一下,英文不

heeye的专栏 680

【问题解决】Python 异步 asyncio 卡死、协程不执行、任务泄漏,保姆级排错

本文详细分析了Python异步编程中常见的卡死、协程不执行和任务泄漏问题。文章首先列举了这些问题的典型表现,如程序卡住、死锁、任务未启动等。然后深入剖析了各类问题的根源,包括同步阻塞操作、未正确await、资源未清理等。针对这些问题,文章提供了两套解决方案:一是异步编程最佳实践,包括安全协程执行、带超时的执行、任务清理等实用方法;二是死锁检测和预防机制,通过锁管理和等待图分析来避免死锁。文章还包含可直接使用的代码示例,帮助开发者快速定位和解决异步编程中的常见问题。

博客 450

安卓学习第17课——Gallery

虽然Gallery已经过时了,但是既然书上讲了,我还要学习一下。。产生的效果很好。。。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_...

aozhe0658的博客 105

[解决] PDF转图片,中文乱码或显示方框的解决方案

在Java开发中,将PDF文件转换为图片是一项常见的需求,但过程中可能会遇到中文乱码或显示方框的问题。本文将深入探讨这一问题,并提供详细的解决方案,帮助开发者顺利地完成PDF到图片的转换。

DazedMen的博客 1925

2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度)

2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。

【优快云】 1万+

Gallery API 16 被替换掉了

Gallery extends AbsSpinner implements GestureDetector.OnGestureListener java.lang.Object    ↳ android.view.View      ↳ android.view.ViewGroup        ↳ android.widget.Adap

muyanfei的专栏 733

基于Pascal VOC数据集的YOLOv8目标检测系统实现:人、鸟、猫、牛、电视、车等20类目标识别与UI界面部署全流程详解

VOC 2007、VOC 2012 两个主要版本;每个图像提供 bounding box(目标框)+ 目标类别;共计 20 类,所有图像手工标注,质量高。完整复现 Pascal VOC 20类检测任务成功训练 YOLOv8 模型实现可视化 UI + 实时检测系统支持多平台部署和演示。

YOLO 771

android新组件RecyclerView使用介绍和进阶使用,替用Gallery

RecyclerView是support-v7包中的新组建,是一种强大的

10万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Alfred Workflows 完全攻略:解锁Mac效率新境界

Alfred Workflows 是提升 Mac 使用效率的强大工具集,通过自动化操作和快捷命令帮助用户简化日常任务。本项目(GitHub 加速计划 / alfr / alfred-workflows)曾是多个实用 Alfred 工作流的集合地,虽然当前仓库已**deprecated**,但其历史资源和迁移指南对 Alfred 用户仍具有重要参考价值。 ## 🌟 为什么选择 Alfred Wo

gitblog_00758的博客 926

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

elementUI使用scss自定义主题编译时Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

解决办法 使用通过scss自定义elementUI的主题时,若sass版本不对,编译时会警告虽然不影响正常编译,但是很影响心情,我们只需要在package.json文件里修改"sass": "~1.32.6"即可 使用scss文件修改elementUI自定义主题方法 Element 的 theme-chalk 使用 SCSS 编写,如果你的项目也使用了 SCSS,那么可以直接在项目中改变 Element 的样式变量。新建一个样式文件,例如 element-variables.scss,写入以下内容: /*

weixin_52369659的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Compose-router vs Navigation Compose:单Activity导航的5大核心差异与Appyx迁移指南

compose-router 是一个面向 Jetpack Compose 的**单 Activity 导航路由库**,用 Compose 组合(而非 XML 导航图)映射整个 App 结构,并自带多级后向栈(back stack)、返回键处理和作用域状态持久化。它的官方继承者 Appyx 如今已是该领域的正统方案,因此本文将它和 Google 官方的 Navigation Compose 逐一拆解

gitblog_00480的博客 930

掌握basic-ftp目录操作:ensureDir与uploadFromDir的高效用法

basic-ftp是一款专为Node.js打造的FTP客户端,支持FTPS加密传输、IPv6被动模式、async/await语法及TypeScript类型定义。本文将深入解析两个核心目录操作API——**ensureDir**与**uploadFromDir**的使用技巧,帮助开发者轻松实现目录创建与批量文件上传功能。 ## 📂 ensureDir:自动创建多层级目录的终极方案 ### 🌟

gitblog_00630的博客 432

ios相机读取图片到相册writeImageToSavesPhotosAlbum出现的问题

读取相机选择的照片 MImaLibTool *imgLibTool = [MImaLibTool shareMImaLibTool]; [imgLibTool.lib writeImageToSavedPhotosAlbum:[theImage CGImage] orientation:(ALAssetOrientation)[theImage imageOrientation] ...

howl_MK的博客 2833
上一篇: Android软键盘(输入法)使用大杂烩:避免进入页面EditText自动弹出软键盘-2013.11.08更新
下一篇: Caused by: java.lang.AssertionError: illegal type variable reference 解决办法
极客公园
博客等级 码龄15年 45粉丝 38原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值