Android零基础入门|ImageSwitcher和TextSwitcher使用
suiw9 2024-10-28 18:33 29 浏览 0 评论
上一期我们了解了ViewAnimator组件和ViewSwitcher组件的使用,你都掌握了吗?本期一起来学习ViewSwitcher的两个子组件ImageSwitcher和TextSwitcher。
一、ImageSwitcher
ImageSwitcher和ImageSwitcher继承了 ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件时使用动画效果。ImageSwitcher继承了 ViewSwitcher,并重写了 ViewSwitcher 的 showNext()、showPrevious()方法,因此 ImageSwitcher 使用起来更加简单。
使用 ImageSwitcher 只要如下两步即可。
为 ImageSwitcher 提供一个 ViewFactory,该 ViewFactory 生成的 View 组件必须是 ImageView。
需要切换图片时,只要调用 ImageSwitcher 的 setImageDrawable(Drawable drawable)、 setImageResource(int resid)和 setImageURI(Uri uri)方法更换图片即可。
接下来通过一个简单的示例程序来学习ImageSwitcher 的使用。
继续使用WidgetSample工程的advancedviewsample模块,首先准备5张图片放在drawable目录下,然后在app/main/res/layout/目录下创建imageswitcher_layout.xml文件,在其中填充如下代码片段:
上面界面布局文件中的粗体字代码定义了一个ImageSwitcher,并通过android:inAnimation 和android:outAnimation指定了图片切换时的动画效果。
ImageSwitcher的使用一个最重要的地方就是需要为它指定一个ViewFactory,也就是定义它是如何把内容显示出来的,一般做法为在使用ImageSwitcher的该类中实现ViewFactory接口并覆盖对应的makeView方法。新建ImageSwitcherActivity.java文件,加载上面新建的布局文件,具体代码如下:
运行程序,点击ImageSwitcher时可以看到下图所示界面图片切换的效果。
二、TextSwitcher
TextSwitcher继承了 ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换 View组件时使用动画效果。与ImageSwitcher相似的是,使用TextSwitcher也需要设置一个 ViewFactory。与 ImageSwitcher 不同的是,TextSwitcher 所需的 ViewFactory 的 makeView()方法必须返回一个TextView组件。
TextSwitcher与TextView的功能有点相似,它们都可用于显示文本内容,区别在于TextSwitcher的效果更炫,它可以指定文本切换时的动画效果。
接下来通过一个简单的示例程序来学习TextSwitcher的使用。
继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建textwitcher_layout.xml文件,在其中填充如下代码片段:
上面的界面布局文件中定义了一个TextSwitcher,并指定了文本切换时的动画效果。
接下来Activity只要为TextSwitcher设置ViewFactory,该TextSwitcher即可正常工作。新建TextSwitcherActivity.java文件,加载上面新建的布局文件,具体代码如下:
上面的粗体字代码重写了 ViewFactory的makeView() 方法,该方法返回了一个TextView,这样即可让 TextSwitcher正常工作。当程序要切换TextSwitcher显示文本时,调用TextSwitcher的setText()方法修改文本即可。
运行程序,点击TextSwitcher将会切换显示的文本,同时会出现动画效果,如下图所示。
至此,关于ImageSwitcher和TextSwitcher组件学习完毕,如果还有不清楚的地方建议回头再多做练习。
今天就先到这里,如果有问题欢迎留言一起探讨,共同成长!
此文章版权为今日头条号分享达人就是我——鑫鱻所有,若需转载请联系作者授权,特此声明!
往期总结分享:
第1节:Android的前世今生
第2节:Android 系统架构和应用组件那些事
第3节:带你一起来聊一聊Android开发环境
第4节:正确安装和配置JDK
第5节:善用ADT Bundle
第6节:配置优化SDK Manager
第7节:搞定Android模拟器
第8节:HelloWorld,第一趟旅程出发点
第9节:Android实战,不懂代码也可以开发
第10节:开发IDE迎来Android Studio
第11节:运行Android Studio工程
第12节:熟悉Android Studio界面
第13节:Android Studio配置优化
第14节:使用高速Genymotion
第15节:掌握Android Studio项目结构
第16节:Android用户界面开发概述
第17节:文本框TextView
第18节:输入框EditText
第19节:按钮Button
第20节:选择控件CheckBox和RadioButton
第21节:开关控件ToggleButton和Switch
第22节:图像视图ImageView
第23节:ImageButton和ZoomButton
第24节:自定义View简单使用
第25节:简单且最常用的LinearLayout
第26节:layout_gravity和gravity大不同
第27节:正确使用padding和margin
第28节:轻松掌握RelativeLayout相对布局
第29节:善用TableLayout表格布局
第30节:两分钟掌握FrameLayout帧布局
第31节:少用的AbsoluteLayout绝对布局
第32节:新推出的GridLayout网格布局
第33节: Android事件处理概述
第34节:Android中基于监听的事件处理
第35节:Android中基于回调的事件处理
第36节:Android系统事件的处理
第37节:初识ListView
第38节:初识Adapter
第39节:ListActivity和自定义列表项
第40节:自定义ArrayAdapter
第41节:使用SimpleAdapter
第42节:自定义BaseAdapter
第43节:ListView优化和列表首尾使用
第44节:ListView数据动态更新
第45节:网格视图GridView
第46节:列表选项框Spinner
第47节:AutoCompleteTextView自动文本
第48节:ExpandableListView多级选择
第49节:AdapterViewFlipper图片轮播
第50节:StackView卡片堆叠
第51节:进度条ProgressBar
第52节:自定义炫酷进度条
第53节:SeekBar和RatingBar
第54节:视图切换组件ViewSwitcher
相关推荐
- 10款超实用JavaScript音频库(js播放音频代码)
-
HTML5提供了一种新的音频标签实现和规范用一个简单的HTML对象而无需音频插件来控制音频。这只是一个简单的整合这些新的HTML5音频特征及使用JavaScript来创建各种播放控制。下面将介绍10款...
- PROFINET转Modbus网关——工业协议融合的智能枢纽
-
三格电子SG-PNh750-MOD-221,无缝连接Profinet与Modbus,赋能工业物联产品概述...
- 简单实用的Modbus类库,支持从站和DTU
-
一、简介...
- [西门子PLC] S7-200 SMART PROFINET :通过GSD组态PLC设备
-
从S7-200SMARTV2.5版本开始,S7-200SMART开始支持做PROFINETIO通信的智能设备。从而,两个S7-200SMART之间可以进行PROFINETI...
- Modbus(RTU / TCP)有什么异同(modbus tcp和tcp)
-
Modbus是一种广泛使用的工业自动化通信协议,它支持设备之间的数据交换。Modbus协议有两个主要的变体:ModbusRTU(二进制模式)和ModbusTCP(基于TCP/IP网络的模式)。尽管...
- Modbus通信调试步骤详解(modbus调试工具怎么用)
-
Modbus通信调试步骤详解 Modbus通信分为串口和以太网,无论是串口还是以太网,只要是标准Modbus,就可以用Modbus模拟器进行调试。按以下几步进行调试。...
- 理解Intel手册汇编指令(intel 汇编指令手册)
-
指令格式...
- 「西门子PLC」S7-200 SMART的Modbus RTU通讯
-
S7-200SMART集成的RS485端口(端口0)以及SBCM01RS485/232信号板(端口1)两个通信端口可以同时做MODBUSRTU主站,或者一个做MODBUSRTU主站一个做MO...
- InfiniBand网络运维全指南:从驱动安装到故障排查
-
一、InfiniBand网络概述InfiniBand(直译为“无限带宽”技术,缩写为IB)是一种用于高性能计算的计算机网络通信标准,具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。它...
- 一加回归 OPPO,背后的秘密不可告人
-
有这样一个手机品牌,它诞生于互联网品牌。在大众群体看来,它的身世似乎模糊不清,许多人以为它是国外品牌。它的产品定位是极客群体,深受国内发烧友,甚至国外极客玩家喜爱。...
- [西门子PLC] S7-200SMART快速高效的完成Modbus通信程序的设计
-
一、导读Modbus通信是一种被广泛应用的通信协议,在变频器、智能仪表还有其他一些智能设备上都能见到它的身影。本文呢,就把S7-200SMART系列PLC当作Modbus主站,把...
- 狂肝10个月手搓GPU,他们在我的世界中玩起我的世界,梦想成真
-
梦晨衡宇萧箫发自凹非寺量子位|公众号QbitAI自从有人在《我的世界》里用红石电路造出CPU,就流传着一个梗:...
- [西门子PLC] 博途TIA portal SCL编程基础入门:1-点动与自锁
-
一、S7-SCL编程语言简介...
- 工作原理系列之:Modbus(modbus工作过程)
-
MODBUS是一种在自动化工业中广泛应用的高速串行通信协议。该协议是由Modion公司(现在由施耐德电气公司获得)于1979年为自己的可编程逻辑控制器开发的。该协议充当了PLCS和智能自动化设备之间的...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
MacOS + AList + 访达,让各种云盘挂载到本地(建议收藏)
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
- 最近发表
-
- 10款超实用JavaScript音频库(js播放音频代码)
- Howler.js,一款神奇的 JavaScript 开源网络音频工具库
- PROFINET转Modbus网关——工业协议融合的智能枢纽
- 简单实用的Modbus类库,支持从站和DTU
- [西门子PLC] S7-200 SMART PROFINET :通过GSD组态PLC设备
- Modbus(RTU / TCP)有什么异同(modbus tcp和tcp)
- Modbus通信调试步骤详解(modbus调试工具怎么用)
- 理解Intel手册汇编指令(intel 汇编指令手册)
- 「西门子PLC」S7-200 SMART的Modbus RTU通讯
- InfiniBand网络运维全指南:从驱动安装到故障排查
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)