android textview按压,点击缩放,背景字体颜色变化

Android TextView视觉定制全解析:从核心属性到性能优化实战 在Android应用开发中,UI控件的视觉定制是构建良好用户体验的基础。TextView作为最核心的文本显示组件,其渲染机制涉及系统主题、资源配置与设备密度等多重因素。理解其工作原理,掌握内容、字体、颜色与背景四大属性的正确配置方法,是实现界面美观、性能高效的关键。通过资源文件管理字符串与颜色,使用sp单位适配字体大小,并利用ColorStateList与Shape Drawable处理状态与背景,不仅能提升开发效率,还能确保应用在不同设备与主题下的兼容性。本文聚焦TextView的深度定制,结合国际化、深 阅读详情

重写onTouchEvent

package com.example.myapplication.feedback

import android.animation.ObjectAnimator
import android.animation.PropertyValuesHolder
import android.content.Context
import android.graphics.Color
import android.util.Log
import android.util.TypedValue.COMPLEX_UNIT_DIP
import android.view.MotionEvent
import com.example.myapplication.R

class FeedBackAniTextView constructor(context: Context) :
    androidx.appcompat.widget.AppCompatTextView(context) {
    val DEFAULT_SCALE =0.98F
    val TAG="FeedBackAniTextView"
    val DEFAULT_TEXT_SIZE = 10F
    var  mDefalutBG :Int = R.drawable.textview_default_bg
    var  mPressBG :Int = R.drawable.textview_press_bg
    var  mDefaultTextSize  :Float = DEFAULT_TEXT_SIZE

    var  mDefalutTextColor :Int = Color.YELLOW
    var  mPressTextColor :Int = Color.RED
    private val scaleZoomIn by lazy {
        val scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f, DEFAULT_SCALE)
        val scaleY = PropertyValuesHolder.ofFloat("scaleY", 1.0f, DEFAULT_SCALE)
        ObjectAnimator.ofPropertyValuesHolder(this@FeedBackAniTextView, scaleY, scaleX)
            .setDuration(100)
    }
    private val scaleZoomOut by lazy {
        val scaleX = PropertyValuesHolder.ofFloat("scaleX", DEFAULT_SCALE, 1.0f)
        val scaleY = PropertyValuesHolder.ofFloat("scaleY", DEFAULT_SCALE, 1.0f)
        ObjectAnimator.ofPropertyValuesHolder(this@FeedBackAniTextView, scaleY, scaleX)
            .setDuration(100)
    }

    override fun onTouchEvent(event: MotionEvent?): Boolean {
        Log.i(TAG,""+event?.action )
        when (event?.action) {
            MotionEvent.ACTION_DOWN -> {
                Log.i(TAG,"ACTION_DOWN"+width)

                scaleZoomIn.start()
                setBackgroundResource(mPressBG)
                setTextColor(mPressTextColor)
                setTextSize(COMPLEX_UNIT_DIP,DEFAULT_SCALE*mDefaultTextSize)
                Log.i(TAG,"ACTION_DOWN2"+width)

            }

            MotionEvent.ACTION_UP -> {
                Log.i(TAG,"ACTION_UP1"+width)
                scaleZoomOut.start()
                setBackgroundResource(mDefalutBG)
                setTextColor(mDefalutTextColor)
                setTextSize(COMPLEX_UNIT_DIP,mDefaultTextSize)
                Log.i(TAG,"ACTION_UP"+width)


            }

            MotionEvent.ACTION_CANCEL -> {
                Log.i(TAG,"ACTION_CANCEL1"+width)
                scaleZoomOut.start()
                setBackgroundResource(mDefalutBG)
                setTextColor(mDefalutTextColor)
                setTextSize(COMPLEX_UNIT_DIP,mDefaultTextSize)
                Log.i(TAG,"ACTION_CANCEL"+width)


            }

        }
        return super.onTouchEvent(event)
    }

    fun setDefaultTextSize(size:Float){
        mDefaultTextSize = size
        setTextSize(COMPLEX_UNIT_DIP,mDefaultTextSize)
    }
    fun setAnimationBg(defaultBG:Int,pressBg:Int){
        mDefalutBG = defaultBG
        mPressBG = pressBg
        setBackgroundResource(defaultBG)
    }
    fun setAnimationTextColor(defaultTextColor:Int,pressextColor:Int){
        mDefalutTextColor = defaultTextColor
        mPressTextColor = pressextColor
        setTextColor(defaultTextColor)
    }

}

使用:

 val feedTextView = FeedBackAniTextView(baseContext).apply {
            gravity = Gravity.CENTER
            setDefaultTextSize(10F)
            setAnimationBg(R.drawable.textview_default_bg, R.drawable.textview_press_bg)
            setAnimationTextColor(Color.RED, Color.BLUE)
        }
        feedTextView.setTextColor(Color.GREEN)
        feedTextView.text = "文案"
        feedTextView.setOnClickListener {
            Log.i("tag", "吐司")
        }
        binding.ll.addView(feedTextView, 0)
        feedTextView.layoutParams.width = 200
        feedTextView.layoutParams.height = 100

        feedTextView.setAnimationTextColor(Color.RED, Color.BLUE)

        val drawable = resources.getDrawable(R.drawable.ic_nv)
        drawable.setBounds(0, 0, 10, 10)
        feedTextView.setCompoundDrawables(drawable, null, drawable, null)
        feedTextView.compoundDrawablePadding = 10
    }
(2)编写更友好的 Android 应用 UI 作者:禅与计算机程序设计艺术 1.简介 对于一个大型应用而言,它的用户界面(UI)设计至关重要。在 UI 的设计中,需要注意到易用性、可用性、美观度、功能完整性等诸多因素。设计师需要花费大量的时间和精力,去思考如何让用户快速、轻松地使用应用的功能,并且避免给用户带来不必要的困扰。 现在,A 阅读详情

相关推荐

TextView中图片点击实现图片的缩放功能

1、TextView实现图片混排,并且显示当地SD卡中的图片。 2、TextView图文混排时,实现图片的点击放大功能。 3、TextView图文混排时,实现图片的点击缩放功能。(根据手势缩放) 4、里面附带有大图片(5M及其以上)的Image实现方法。(也是根据手势缩放,避免内存溢出问题) 相应的博客地址:https://blog.youkuaiyun.com/lpcrazyboy/article/details/80841459

TextView在按压和获得焦点的时候字体的颜色改变的问题解决

1. 在res目录下新创建一个文件夹color文件夹 2.在文件夹下直接新建一个xml文件 如下所示: 3.在需要的地方引用: android:textColor="@color/text_clours_selector"即可!

默默丶遗忘 3865

保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码)

本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。

weixin_29090917的博客 468

Android TextView背景颜色、文字颜色按压效果

TextView按压效果如下: 1.未点击时,字体颜色为黑色,背景为系统默认颜色; 2.点击时,字体颜色为绿色,背景为粉色。 布局文件:res/layout/activity_main.xml <TextView android:layout_width="match_parent" android:layout...

u014611408的博客 4496

免费搞定DWG转DXF:ODA File Converter保姆级配置指南(附常见报错解决)

本文详细介绍了如何使用ODA File Converter免费工具实现DWG到DXF的格式转换,包括环境配置、命令行参数解析、编程集成方案及常见问题解决。特别针对网络访问异常、参数配置等实际痛点提供应对策略,帮助用户高效完成工程设计文件的格式转换。

weixin_29291185的博客 5981

论文笔记--Spatial-Temporal Fusion Graph Neural Networks for Traffic Flow Forecasting

Summary 在交通预测问题上,现有的框架通常利用给定的空间邻接图和复杂的机制来建模空间和时间关联。作者认为使用给定的空间邻接图会限制模型的有效时空相关性学习,并且它们通常使用单独的模块来实现空间和时间相关性,或者只使用独立的组件来捕获局部或全局的异质依赖关系,割裂了时空依赖关系。为此作者提出一种时空融合图神经网络用于交通预测。提出一种数据驱动的“时间图”生成方法,以此来补偿空间图可能没有反映的相关性。提出一种新的交通预测方法。 Problem Definition 交通预测中的挑战 以上图为

chenxino的博客 1755

安卓TextView、Button点击效果背景变化实现

安卓TextView、Button点击效果背景变化实现 android UI开发中最经常用到的就是各种控件的点击事件,比如TextView和Button,点击时背景色有个变化提醒用户触发了点击事件,当用户手指抬起时,背景色又恢复正常,这种效果配置方法很简单,两步即可。 第一步 编写一个XML文件 该文件位于drawable文件夹下面,根据使用的背景的资源不同,写法也不同,比如有的背景直接使用的...

小ぃぃ强 449

工业机器人关节拆装流程_一文读懂模块化直驱电机及机器人关节模组

私信“干货”二字,即可领取138G伺服与机器人专属及电控资料!如果说芯片是智能行业最为重要的核心元件,那么电机几乎可以说是支撑了整个自动化和大工业生产以及现代社会最为重要的部件,全世界90%的能源是由电机发出来的,而70%是由电机消耗调的,电机可以说是整个人类社会能源循环的占有绝对地位的产品。普通伺服电机伺服电机其实已经算是电动机中比较高端的类型,特别是永磁同步类型的伺服电机,由于其启动快速,惯量...

weixin_32159771的博客 2153

android 按钮按下时改变字体颜色

1.新建 drawable/button_font_style.xml                2.添加至需要的xml里

大猴子的学习园地 4759

脑机接口(BCI)从原理到开发实战 10|脑控外设:用脑电波控制机械臂/游戏

摘要: 脑机接口(BCI)的“最后一公里”是将分类结果转化为实际动作的关键环节。本文介绍如何通过指令映射、硬件通信和执行反馈实现脑控外设,包括离散/连续控制策略、防抖处理及串口/蓝牙通信方法。通过两个实战案例(运动想象控制机械臂抓取、P300/SSVEP控制游戏)和完整项目(OpenBCI控制小车),演示了从分类标签到设备动作的完整流程,重点涵盖指令生成算法(多数投票)、Python与Arduino的串口通信集成,为BCI系统落地提供实用解决方案。(149字)

小明的博客 763

李宏毅机器学习hw3

Homework 3 - Convolutional Neural Network 1作业概述 在food_11文件中有三个文件分别是training、validation、testing,打开training和validation可以看见总共有11种食物(0-10的类别编号),而testing是没有类别编号的。 然后用卷积神经网络对食物图片进行分类。 2导入用到的库 torch库 这个我弄了半天,直接pip总是timeout,用镜像源下下来又出现OSError: [WinError..

老问题的博客 4187

更新 --- android实现自定义RelativeLayout可拖动、缩放、旋转TextView

因最近公司项目需求,需要做出一个在一张背景图上添加文字,文字可编辑如修改颜色、样式、字体、背景添加气泡等,也可对文字的位置进行修改,实现拖动、旋转、缩放等功能,类似于美图秀秀中文字的添加,最后可将背景图和文字联合生成一张图片,保存到相册中,自网上也没有找到合适的代码以供参考,所以决定自己写一个自定义的控件实现以上的效果。     先贴上图看一下效果,这个demo的基本功嫩包括:

roll圈圈的博客 9964

Research Proposal:自动驾驶 行人运动预测

Research Proposal about Pedestrian/Cyclist Motion Prediction for Self-Driving Vehicles   If I can be provided with the opportunity to conduct PhD research in pedestrian/cyclist motion prediction for...

Poetry Wanderer的博客 3086

TextView的点击时背景颜色

TextView有两种点击方式 一种是直接对着TextView这个View设置点击 一种是对着TextView的文字通过SpannableStringBuilder设置点击 第一种因为是对View点击所以没有设置的情况下,是不会出现点击时背景变色的情况 例如: 这里每一个红框代表着一个TextView ,然后通过ID设置《用户协议》与《隐私协议》的点击事件 这种直接对着View设置...

quange14的博客 946

2017年全国大学生电子设计竞赛综合测评题目解析——Multisim仿真

1.题目 给定两个单电源的双运放芯片READ2302G芯片(当时记得增益带宽积好像是6M),一片HD74LS74数字芯片双D触发器,需要详细电路图、手写报告,5个波形输出,测频,测幅,8:00公布题目,15:00停止答题,中间可以吃饭(也可以不吃继续做),15:00清场,休息一段时间后开始进场测试,打分。 2.要求 (1)一片运放搭建方波振荡电路,频率 20 KHz,误差 0.1 KHz,幅度 3...

DengFengLai123的博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android TextView按下时改变文字颜色

定义TextView文字颜色selector将定义的selector设置为TextView的textColor 定义TextView文字颜色selector android TextView按下时改变文字颜色是通过selector实现的。selector中设置正常状态的颜色和按下时的颜色。 在drawable文件夹中创建一个selector,命名为list_item_text

qq_20670449的博客 2176

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android 点击按钮更改按钮上文字的颜色

完成如图所示的功能效果,点击按钮更改按钮上文字的颜色。 color_exchange(activity) package com.example.myapplication_one; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button.

hey,欢迎浏览我的博客,希望能给你提供帮助。 2903

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android点击按钮改变文字颜色-选择器

如下,点击drawable,点击new,再点击drawable resource file 如下,名字为btn的选择器selector,我在项目中改成了btnselector 然后在下面输入这些代码 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:Android="http://schemas.android.com/apk/res/android"> <!-- 定义按钮按下时的图片 -->

weixin_44911775的博客 1877

Android按钮点击缩放效果

刚刚在做点击缩放的效果,虽然5、6年前就已经实现过一版了,但是技术的迭代更新,实现方案也进化了,相比之前(自定义View,不同类型的系统组件都要封装一次)简洁太多了,所以拿出来和大家分享下。 效果 TextView、Button、LinearLayout等等所有View的子类,都可以兼容。 addClickScale.gif 代码 关键部分 /** * 添加点击缩放效果 */...

yiyiyi130的专栏 3152

TextView 字体缩放

重点:测试发现单行用android:maxLines="1"才可实现缩放, android:singleLine="true"不可实现缩放。 <TextView android:layout_width="466dp" android:layout_height="72dp" android:gravity="center" android:maxLines="1" androi

WALL_robot_的博客 416

android按压效果,安卓利用selector设置TextView按压效果(改变颜色和背景)

效果图按压前后效果对比:主要代码colors.xml增加按压前后文字和背景颜色定义#FFFFFF#FFC0CB#000000#0000FF增加背景选择器: selector_text_view_bg.xml增加文字颜色选择器: selector_text_view_color.xml使用注意: 需要设置android:clickable为true.android:layout_width="wra...

weixin_35744893的博客 1220

textview点击展开全部或收起,内容过长显示省略号,设置行间距,字间距,跑马灯显示

使用RelativeLayout可以使用图标点击旋转,展开textview或收缩textview <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" andro...

meixi_android的博客 1909

Android点击效果改变字体颜色

在colors.xml中添加 #000000 #BAB6B6 在

小旭的专栏 3457

android 按钮按下缩放,android捏缩放

我TextView使用本教程为我实现了一个缩放缩放。结果代码是这样的:privateGestureDetectorgestureDetector;privateView.OnTouchListenergestureListener;并在onCreate()中://ZoomhandlersgestureDetector=newGestureDetector(newMyGestur...

weixin_34805308的博客 299

在android中如何点击按钮实现按钮文本颜色变换?

android中点击按钮,按钮的文字颜色改变,点击别的按钮,该按钮恢复正常颜色,另外的按钮文本颜色改变

m0_53743933的博客 5554
上一篇: Recyclerview smoothScrollToPosition()无效问题
下一篇: 增加控件点击响应热区
zz白龙
博客等级 码龄10年 26粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz白龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值