AndroidTV 获取焦点View放大效果实现方式
需求
电视开发最常见的就是view获焦后要有放大效果,让用户明显看到。这里总结两个实现方法,以后遇到其他的再补充。
方式一:ViewCompat.animate(view)
1、注册焦点变化监听
mBtnFocus1.setOnFocusChangeListener(this);
2、有焦点变化的时候进行放缩
@Override
public void onFocusChange(View view, boolean hasFocus) {switch (view.getId()) {case R.id.btn_focus1:if (hasFocus) {//获焦后放大1.2倍ViewCompat.animate(view).scaleX(1.2f).scaleY(1.2f).translationZ(1.2f).start();} else {//丢失焦点后缩回正常ViewCompat.animate(view).scaleX(1.0f).scaleY(1.0f).translationZ(1.0f).start();}}
}
方式二:StateListAnimator
1、res文件夹下新建animator文件夹,然后新建focus_scale_anim.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_focused="true"><set><objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="scaleX"android:valueTo="1.2"android:valueType="floatType" /><objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="scaleY"android:valueTo="1.2"android:valueType="floatType" /></set></item><item android:state_focused="false"><set><objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="scaleX"android:valueTo="1"android:valueType="floatType" /><objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="scaleY"android:valueTo="1"android:valueType="floatType" /></set></item>
</selector>
2、然后在xml布局文件中,把需要放缩的view加上该动画
<Buttonandroid:id="@+id/btn_focus3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="50px"android:stateListAnimator="@animator/focus_scale_anim"android:text="focus3" />
3、或者在代码中实现也可以
StateListAnimator animator = AnimatorInflater.loadStateListAnimator(this, R.animator.focus_scale_anim);
mBtnFocus2.setStateListAnimator(animator);
上面分别用focus3和focus2分别用了xml和代码的方式,运行效果一致。
参考文章:
StateListAnimator的应用
相关文章:
AndroidTV 获取焦点View放大效果实现方式
需求 电视开发最常见的就是view获焦后要有放大效果,让用户明显看到。这里总结两个实现方法,以后遇到其他的再补充。 方式一:ViewCompat.animate(view) 1、注册焦点变化监听 mBtnFocus1.setOnFocusChangeListener(this);2、有焦点变化的时…...
访问者模式——操作复杂对象结构
1、简介 1.1、概述 访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分。这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系…...
指针经典笔试题强训(附图详解)
目录 笔试题1: 解析: 运行结果: 笔试题2 解析: 运行结果: 笔试题3 解析: 运行结果: 笔试题4 解析: 运行结果: 笔试题5 解析: 运行结果:…...
Python:列表(list)与元组(tuple)
列表与元组 列表:list元组:tuple 比较直观的区分:列表是中括号"[ ]“,元组是小括号”( )"元组可以看成列表的只读形式 # 列表 list1 [hello, world] list2 [1, 2, 3, 4, 5] list3 ["a", "b", &…...
常见的相似性度量方法
有如下几种计算相似性方法: 点积相似度 X ⋅ Y ∣ X ∣ ∣ Y ∣ c o s θ ∑ i 1 n x i ∗ y i \begin{aligned} X \cdot Y & |X||Y|cos\theta \\ & \sum_{i1}^n x_i * y_i \end{aligned} X⋅Y∣X∣∣Y∣cosθi1∑nxi∗yi 向量内积的结果是没…...
Day06-JS高级编程
Day01-JS高级编程 一 变量和常量 1 概念 在程序中,变量是值可以改变的量,常量是值不可以改变的量 在ES6以前变量的创建使用var关键字 (可以创建多个同名变量) 从ES6开始变量的创建推荐使用let关键字 (不可以创建多个同名变量) 从ES6开始常量的创建使用const关键 (不可以创建…...
针对高可靠性和高性能优化的1200V硅碳化物沟道MOSFET
目录 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…...
开发框架软件公司:与之携手,共同开启办公流程化之路!
在快节奏的社会里,如何提高企业的办公效率?如何让各部门之间的协作关系更为顺畅?如何把企业内部的数据真正利用起来,成为高层做出经营决策的重要依据?其实,要做到这些,与开发框架软件公司联手合…...
openCV C++环境配置
文章目录 一、openCV 安装二、新建项目三、配置环境变量四、测试使用 编译器:vs2017 OpenCV:4.5.4 一、openCV 安装 将openCV安装到一个路径下,我安装到了D盘根目录下 二、新建项目 在vs2017新建控制台空项目,打开项目属性 在VC目录 -> 包含目录下…...
8.3 作业 c高级
1.递归实现,输入一个数,输出这个数的每一位: #include<myhead.h>void print_digit(int num) {if(num<10){printf("%d",num);puts("");}else{print_digit(num/10); //递归打印除最后一位外的数printf("%…...
django实现部门表的增删改查界面
1、前期准备 部署好mysql数据库,创建好unicom数据库下载好bootstap的插件下载好jquery的插件下载好mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl的安装包,根据python的版本下载 2、创建项目 在pycharm中创建项目 在pycharm的终端创建虚拟环境 py -m v…...
Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行
一、Tomcat的介绍和安装配置 安装tomcat: 环境变量的配置: 配置之后重启cmd,执行startup命令,启动tomcat 在localhost:8080,能进入tomcat主界面,说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…...
idea操作——已经push到远程的代码回滚(不保留本地更改)
1. git: 2. 找到相应分支--->找到要回滚的代码的位置----->右键,然后选择如图的选项: 3.下图的选项选择hard,然后选择reset 4.操作完成后等一会,待同步结束后push代码到远程,选择force push.…...
无涯教程-Lua - 垃圾回收
Lua使用自动内存管理,该管理使用基于Lua内置的某些算法的垃圾回收。 垃圾收集器暂停 垃圾收集器暂停用于控制垃圾收集器之前需要等待多长时间; Lua的自动内存管理再次调用它。值小于100意味着Lua将不等待下一个周期。同样,此值的较高值将导…...
DP(各种模型)
数字三角形模型 摘花生 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就…...
开学在即,这个超好用的中小学新生录取查询系统制作方法值得借鉴
即将开学,中小学负责招生的老师面临着新学年的招生工作。这是一项紧迫且重要的任务,需要老师们迅速而有效地应对。在新生录取过程中,有几个关键任务需要尽快完成。 首先,老师们需要录入新生的成绩信息。这包括学生的考试成绩、综…...
使用Canvas裁剪图片
使用Canvas裁剪图片 概述 在Web开发中,我们经常需要对图片进行裁剪,以满足不同尺寸需求或者实现图片的局部展示。本篇博客将带您深入了解如何使用Canvas技术来实现图片的裁剪功能。我们将通过一个实例来演示如何利用Canvas绘制图片,并通过蒙…...
JavaScript |(三)内建对象 | 数组 | string对象 | 尚硅谷JavaScript基础实战
学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 📚数组🐇数组介绍⭐️数组(Array)⭐️基本操作⭐️数组的字面量 🐇数组中的常用方法⭐️push()⭐️pop()⭐️unshift()⭐️shif…...
势能线段树
目录 简单介绍 题目 1. 上帝造题的七分钟 2 2.SUM and REPLACE 3. And RMQ 总结 简单介绍 题目 1. 上帝造题的七分钟 2 链接:https://www.luogu.com.cn/problem/P4145 维护两种操作 1.区间开根号(下取整) 2.区间和询问 显然无法通过懒标记来计算区间开根号…...
【phaser微信抖音小游戏开发004】往画布上增加文本以及文本的操作
我们在states中创建st004.js的类,或者将states中的index.js直接重命名为st004.js,把里面的类名也修改为st004.如下图 在main.js中,引入st004,并设置启用的state为st004。如下图 接下来到states/st004里面,在create里面将文本修改一…...
MyBatis-Plus Samples企业级应用架构:从单体到微服务的平滑过渡
MyBatis-Plus Samples企业级应用架构:从单体到微服务的平滑过渡 【免费下载链接】mybatis-plus-samples MyBatis-Plus Samples 项目地址: https://gitcode.com/gh_mirrors/my/mybatis-plus-samples MyBatis-Plus Samples是一套全面的企业级应用架构示例&…...
告别抽卡盲盒:3步掌握原神抽卡数据分析的艺术
告别抽卡盲盒:3步掌握原神抽卡数据分析的艺术 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 你是否曾对着原神祈愿界面发呆,记不…...
高通SDM660手机开机到Linux内核,ABL的LinuxLoader都干了啥?(代码流程详解)
探秘高通SDM660开机之旅:LinuxLoader如何完成UEFI到内核的华丽转身 当按下手机电源键的那一刻,一场精密的接力赛在芯片内部悄然展开。作为连接UEFI固件与Linux内核的关键"二传手",ABL阶段的LinuxLoader扮演着至关重要的角色。今天…...
【LLM转型三周年纪念——Harness agent 理解】成为每个读者的独家记忆,从第一性原则出发,一文打穿你的AI幻觉,
前言 本文动机是从CV到NLP的三年 LLM转型的历程,趁着harness agent 热度 ,主观视角下对当前一些事情的理解观点,希望对读者有所启发和帮助,并且我也将我的观点和新发布的opus4.7 进行了一波讨论,这也是我决定发出来的…...
2026年2款HR系统横评:红海云与用友谁更适合制造业?
制造业选HR系统,真正拉开差距的往往不是人事流程是否在线,而是倒班与综合工时能否稳、计件与绩效能否准、与MES和ERP数据能否顺畅闭环,以及集团多工厂规则差异能否统一管控。红海云与用友都覆盖主流HCM模块,但产品侧重点不同&…...
别再乱用本地布线了!7系列FPGA时钟设计避坑指南:BUFG、BUFH、BUFR到底怎么选?
7系列FPGA时钟架构深度解析:BUFG、BUFH与BUFR的黄金选择法则 当你在Vivado中看到时序报告里那些令人头疼的红色警告时,是否曾怀疑过自己的时钟方案出了问题?7系列FPGA的时钟架构就像一座精密的钟表,每个齿轮(时钟缓冲…...
Vue2项目实战:从零构建store模块与核心API应用——配置、mutations与getters详解
1. Vuex核心概念与项目初始化 在Vue2项目中,当应用规模逐渐扩大时,组件间的状态管理会变得复杂。Vuex作为官方推荐的状态管理方案,通过集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。想…...
Obsidian PDF++:打造智能PDF标注与阅读的完整指南
Obsidian PDF:打造智能PDF标注与阅读的完整指南 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-pdf-…...
不止Tomcat:用Procrun(prunsrv.exe)给你的任意Java GUI程序加个‘系统托盘监视器’
为Java GUI程序打造系统托盘监控:Procrun深度实践指南 在桌面应用开发中,系统托盘图标已经成为提升用户体验的标准配置。想象一下:当用户最小化你的Java应用时,它不会从任务栏消失,而是优雅地缩进系统托盘区域&#x…...
Guesstimate未来路线图:AI集成、私有部署和协作功能的展望
Guesstimate未来路线图:AI集成、私有部署和协作功能的展望 【免费下载链接】guesstimate-app Create Fermi Estimates and Perform Monte Carlo Estimates 项目地址: https://gitcode.com/gh_mirrors/gu/guesstimate-app Guesstimate是一款强大的费米估算和蒙…...
