首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想通过按一个按钮来使Textview产生波纹效果。有可能吗?我该怎么做呢?

是的,通过按一个按钮来使TextView产生波纹效果是可能的。您可以通过使用Android的RippleDrawable来实现这个效果。

首先,在您的项目的res/drawable目录下创建一个ripple_effect.xml文件,内容如下:

代码语言:txt
复制
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:attr/colorControlHighlight">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
        </shape>
    </item>
</ripple>

然后,在您的布局文件中,将TextView的背景设置为这个ripple_effect.xml文件,如下所示:

代码语言:txt
复制
<TextView
    android:id="@+id/myTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:background="@drawable/ripple_effect" />

最后,在您的Activity或Fragment中,为按钮设置点击事件,并在点击事件中为TextView设置波纹效果,如下所示:

代码语言:txt
复制
Button myButton = findViewById(R.id.myButton);
TextView myTextView = findViewById(R.id.myTextView);

myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        myTextView.setBackgroundResource(R.drawable.ripple_effect);
    }
});

这样,当您点击按钮时,TextView就会产生波纹效果。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/tpns)、腾讯云移动直播(https://cloud.tencent.com/product/mlvb)、腾讯云音视频通信(https://cloud.tencent.com/product/im)、腾讯云云服务器(https://cloud.tencent.com/product/cvm)、腾讯云对象存储(https://cloud.tencent.com/product/cos)等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android Material UI控件之MaterialButton

做程序员不要钻牛角尖,跑路时要跑路。 ② 双圆角按钮   你可能还有别的想法,你可能这个按钮左上角和右下角是圆角,其他的是直角,这样行不行?肯定行啊,兄嘚。...那么你可能会问这两种格式什么区别,区别就在于,.png没有代码,.xml是代码的,它通过path路径来画图标,你不了解就不会看的很明白。...感觉完美,Google的设计师和程序员果然不是盖的,这个时候又想到了一句话,那就是距离产生美,你想一下如果这个图标紧挨着文字会好看?除非你瞎了,要么你就是杠精!显然目前这样还不是终极目标。...当你点击的时候又会淡白色的水波纹效果。如果你要问我什么是水波纹效果的话,请看下图: ? 注意到了吗?...其实一般的Button也有这个点击的效果,但是如果要修改这个水波纹的颜色会麻烦一些,需要通过样式来设置才行,但是MaterialButton可以直接修改这个水波纹的颜色。比如我这里改成绿色。

3.2K20

Android5.0中多种水波纹效果的实现代码

波纹效果已经不是什么稀罕的东西了,用过5.0新控件的小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波纹效果?.../ 所谓的无界并非完全无界,而是以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制。OK,这两种都是系统自带的水波纹效果,如果我们想要自定义又该怎么做?...带图片形状的水波纹 有的时候如果你希望水波纹不是长条形,又该如何两种解决方案,一种是使用图片,还有就是自定义shape,我们先来看看使用图片: <?...大家看到,这个时候的水波纹效果就是这个小机器人这张图片中非透明像素点所在的区域了。 自绘形状的水波纹 自绘shape,来看一个圆角矩形: <?...大家看到,可以在item中定义shape,那么可能有小伙伴会想到我是否可以在item中定义selector?当然可以。 带selector效果的水波纹 代码: <?

1.4K20
  • React Native按钮详解|Touchable系列组件使用详解

    TouchableNativeFeedback:在Android上还可以使用TouchableNativeFeedback,它会在用户手指下时形成类似水波纹的视觉效果。...接下来,我们就来使用onPress属性来实现一个统计按钮单击次数的例子。...接下来,我们就来使用onLongPress属性来响应用户的长按事件。...心得:朋友问我,禁用按钮,但是通过设置Touchable的accessible 属性为false没有效果,这也是因为即使accessible为false的情况下,Touchable组件还是可以响应交互事件的...3) TouchableNativeFeedback.Ripple(color, borderless) - 会创建一个对象,当按钮下时产生一个涟漪状的背景,你可以通过color参数来指定颜色,如果参数

    4.1K70

    Android事件分发机制抽象--钓钩模型

    假如点击事件是一个难题,这个难题最终被上级领导分给了一个程序员去处理(这是事件分发过程),结果这个程序员搞不定(onTouchEvent 返回了 false),现在怎么办?...在回答这个问题前,必要科普一下 Android 开发者文档中描述的事件流一致性保证(Consistency Guarantees): 下开始,中间可能伴随着移动,直到松开或者取消结束。...FrameLayout 和 TextView 均设置按键监听,要求在红色和蓝色区域任意位置点击,只由 FrameLayout 的按键监听响应,怎么做? 这个简单,来!...DOWN 事件一定要返回 true ?返回 false 行不行?UP 事件,需不需要返回 true? 2.1 只能拦截 DOWN 事件?...分享个生活小妙招放松一下:当我们在按下按钮那一刻,后悔了怎么办? 的做法是,手着不放,慢慢移动到按钮以外区域,然后再小心抬起,如愿以偿的没有触发点击操作(终于在付款的最后一刻冷静了下来,机智)。

    68220

    Flutter 组件集录 | 从图标按钮看组件封装

    如果一个组件从根源上进行了解,查看它的构建逻辑即可。从中你可以知其然,知其所以然,当你知道一件事物的构成机理,那它的任何表现都不会脱离你的控制,在使用时就是 “降维打击” 。 ---- 3....IconButton 组件 IconButton 是一个具有圆形水波纹点击效果的组件,必须传入一个子组件 icon 和回调函数 onPressed 。...效果如下: 说实话,国内的应用软件基本上不喜欢用 material 风格。对个人来说,水波纹能给用户一个交互的反馈,本身是比较好的,但一个小小的图标按钮有水波纹,感觉怪怪的。...这不得不让图标按钮的占位区域扩大,当多个 IconButton 排列时,如下所示,默认情况下,水波纹区域太大,又会显得拥挤: 不过可以通过 splashRadius 来控制水波纹的扩散半径。...可能有人会疑惑,使用函数不是也能封装组件通过函数参数也能控制构建的表现,它和分离组件什么区别?其实两者在本质上并没有什么区别,目的是一致的:封装特点创建中的构建逻辑。

    1.2K10

    老板:你给我来个蜻蜓点水的特效

    之后在的深入评估(摸鱼)中,选取了一个稍微简单的特效,所谓蜻蜓点水实际就是波纹特效。...寻找思路 定好特效后,老板拿了张效果图给我: 好家伙,虽然码的功能性的逻辑比较多,但是这种花哨的技能也是不能落下的,是基于react来编写特效(也有vue版本的,后面会放上,兴趣自行查看),...clickedCount: 0, //统计点击次数(这个后面说) }; } } 了基本配置后,我们需要一个创建波纹的方法,那这个方法如何实现?...理一下思路,首先新生成的波纹当然是要在之前波纹的上层产生叠加效果,之后给定随机范围内的波纹大小让其生成,并且往波纹数据里push一个新的波纹配置对象。...wavesConfig = { ...this.state.wavesConfig }; const { waves } = this.state; // 让新生成的波纹始终在之前波纹的上层产生叠加效果

    54810

    无需自定义View,彻底解放shape,selector吧

    这就导致了很多非常相似的.xml文件产生。 网上之前也有了一种通过自定义View,在xml中通过设置属性达到shape效果的控件。...但是这种自定义的控件不太灵活,归根到底是一个自定义的button,如果改造项目的话就得去替换原有的button或者textView。...有没有觉得很熟悉,就是原生标签的tag名+_+属性名,很容易记住,而且不管是Button还是TextView,只要是View都可以。 效果 我们来看一下实际效果: ?...在这里,通过低入侵的方式,加入一个自定义的LayoutInflater.Factory,去解析添加的自定义属性,接下来就简单了。...,需要同时添加 app:unpressed_color app:pressed_color 如果需要水波纹效果,5.0以上才支持: app:ripple_enable="true"//打开水波纹开关 app

    70020

    Android Jetpack组件 Compose 使用介绍

    下面我们用一下吧,这里要说明一下,Compose 需要使用新版本的Android Studio,目前最新的是大黄蜂版本,以及使用Kotlin去开发,如果你对Kotlin一无所知,这可能学起来一点难度...,可能的说明详细一些,其实Compose出来已经一段时间了,在新的AS更新后,对于Compose开发更加友好的,下面来创建一个项目吧。...圆的很方便,现在我们改成圆角的,要怎么改? 是不是很nice?你还记得在之前的项目中这样操作要怎么做?是不是很方便?...④ 空间占位 有时候为了美观,我们会设置两个控件之间一定的距离,常规的边距和填充都可以做到,这里我们介绍一个空间占位,就拿这两个Text来说,希望它们之间一点距离,怎么做?...这个演示效果在预览中是看不出来的,我们用真机来看一下: 从上面这个图来看,你会发现点击默认的水波纹效果,这一点很好,还有就是点击的区域是包裹你当前这个item的内容,而不是占满屏幕宽度。

    2.8K20

    一文彻底搞清楚 Material Design

    TranslationZ:动态海拔高度偏移高度,是一个偏移的距离,是用来作动画效果,否则不要使用。 Translation Z 是动态的,当创建一个项目,增加一个按钮,当按钮会阴影变大了。...按钮的动作效果,默认 FAB 6dp 的Elevation,当按钮时 translation Z 值开始增加。...比如说:我们桌子上有一层纸,如果我们再贴一张纸,我们的眼睛就会觉得有一个深度。 同样的效果,左边就有深度的感觉,层次感。...轮廓(Outlines) 代表图形对象的外形状,并确定了对于触摸反馈的波纹区域。 每个 view 都有默认的轮廓(其实有的 View 也没有默认的轮廓,比如 TextView)。...阴影的产生是不同海拔高度的材料相互叠加产生的,在 Material Design 中,虚拟的光线照射使的物质材料出现阴影,这里的光有两种光,一种是关键灯,一种是环境灯。

    2.5K10

    《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

    相信用过的人都知道它给人的体验是极好的,看过了绝大多数仿写的案例,基本UI都不够细致,于是决定自己动手写一个,起初也不知道具体它是怎么布局的,后来使用SDK提供的工具uiautomatorviewer...细节分析 - ToolBar 上的按钮点击效果 仔细研究的人知道,网易云音乐的UI做的很精致,就拿一个ToolBar为例,上面的每个按钮的点击操作都有各自的效果。...然而做到以上的效果并不容易,需要你对ToolBar深入的了解;不仅如此,水波纹的点击效果在不同的主题下是不同的表现。下面一起来谈谈如何达到以上的效果。...现总结出两个问题:1、ToolBar上按钮的设置;2、不同按钮点击的水波纹效果 对于1: ToolBar上按钮的设置 些许研究了ToolBar的使用后得知,可以直接在其内部包裹Imageview外,还可以通过菜单文件设置...对于2:不同按钮点击的水波纹效果 这里不是使用ripple属性了,而是使用系统自带的点击水波纹选择器,给要产生点击效果的控件设置: android:background="?

    1.4K10

    Android-MediaPlayer(2)加进度条和时间显示

    我们先看看效果吧万一不是你要的那个,不就浪费你的时间了,效果图如下: ? ? (不可否认,丑是丑了点,但是内涵,你懂得啊!) 接下来就来实现这个效果吧。...我们一下,我们已经知道这个音频文件放在手机里面了,也已经可以播放了,那么要用进度条来显示当前歌曲的播放进度怎么做,并且你可以通过手指拖拽这个Seekbar来到你想要的歌曲片段出,并且松手就要播放音乐...刚看到这个你可能有点懵,解释一下, **1.onProgressChanged()**这个方法理解为进度条改变时使用的方法。...,一个播放时间,一个播放位置,开始时间通过刚才的算法得出赋值给tv_start显示在界面上。...大致就是这样了,最后面,放上MainActivity的所有代码,不然可能会被骂啊。

    5.4K20

    Android实习收获:UI细节bug引发的layout_weight深入理解

    今天在修改一个布局问题时候,发现自己对权重的理解还不够。 首先问题如图: 一个TextView没有要求显示完整,显示成了2行。 怎么办? 方法1:是把它左面的字体放小。...为什么? 设置layout_weight = “1”不就是为了保证它在什么情况下都显示?怎么回事。 4。...比如说在一个listView下有个button,listView高度不确定,让button始终显示,就给listView设置个权重。 为什么这么用会有这样的效果?...就比如说开篇的那个问题,让显示时间的TextView不论何时都显示,就给其他的某个不太重要的组件设置权重,让那个不重要的自己根据剩余空间显示大小。...如果两个组件所占的空间之和超过了整个空间的大小,假设整个布局的宽度为10,2个按钮由于设置match_parent理论上的宽度也分别为10,这样2个组件超过了空间,怎么分配

    37810

    Android 音乐APP(二)启动白屏优化、定位当前播放歌曲

    那么怎么解决这个问题相信很多的博客都有这个方面的讲解,但是真正良好体验的比较少,下面的这种也是参考了网易云音乐的启动方式。 正文   为了形成对比,先来看一下网易云的启动。 ?...那么网易云音乐是怎么处理这个白屏的?下面就来告诉你要怎么做。 ① 新建启动页   每个APP都会有启动页,启动页什么用?...③ 增加动画 那么现在启动页和白屏就搞定了,也不想让的启动页这么枯燥,所以我要加一个动画的效果进去。首先进入activity_splash.xml。里面的代码如下: <?...为什么要获取宽度。因为在布局中放了一个相对布局,里面有两个TextView,第二个盖住了第一个。第二个是黑色背景黑色文字,但是它的宽高和第一个TextView是一样的。...GIF放上来可能有点卡帧,但是在手机上效果是相当的nice。

    98310

    Android属性动画完全解析(上),初识属性动画的基本用法

    ,并且我们还可以借助AnimationSet来将这些动画效果组合起来使用,除此之外还可以通过配置Interpolator来控制动画的播放速度等等等等。...那么这里大家可能产生疑问了,既然之前的动画机制已经这么健全了,为什么还要引入属性动画?...可能有的朋友会感到不能理解,怎么会需要对一个非View的对象进行动画操作?...比如说,现在屏幕的左上角一个按钮,然后我们通过补间动画将它移动到了屏幕的右下角,现在你可以去尝试点击一下这个按钮,点击事件是绝对不会触发的,因为实际上这个按钮还是停留在屏幕的左上角,只不过补间动画将这个按钮绘制到了屏幕的右下角而已...然后textview对象需要根据alpha属性值的改变来不断刷新界面的显示,从而让用户可以看出淡入淡出的动画效果。 那么textview对象中是不是alpha属性这个值

    1.5K70

    Compose开发中的一些实用小技巧~

    我们编写一个高度为60dp,宽度满屏的TextView,使用Modifier的clickable属性为其添加点击事件。...remember {             MutableInteractionSource()         }) {         }     ) } 上面实现的Text文字不是垂直居中的,我们如何使其内容垂直居中...Text文本如何垂直居中 你可能尝试过textAlign属性,但是很遗憾,textAlign属性只能达到水平居中的效果,如果想要达到垂直居中的效果,需要在其外层包一层父组件,一般推荐Box。...从图可以看出有明显水波纹效果。有这个效果的原因是在MaterialTheme主题中LocalRippleTheme使用了MaterialRippleTheme的效果,源码如下所示。...ComposeDoTheme {     CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) {        //     } } 这样主题下的按钮点击阴影效果便移除了

    1.5K20

    硬核!史上最全的工厂模式文章,从零到一全面讲解!

    一天走在路上,看到路边一家炸鸡店在卖薯条。善于思考的小黑想着:是否能将这个过程用面向对象的语言表达出来?于是小黑在脑海中开始构思。...土豆去皮 土豆切条 炸薯条 过了几天,小黑看到肯德基推出了波纹薯条,于是炸鸡店也跟进推出新品。于是炸鸡店的店员也不得不跟着改进下切薯条的方法。小黑:这种情况,我们的类结构应该怎么调整?...直到他听到店员吐苦水说:就卖薯条的,你还要让我学怎么做薯条,多麻烦啊。还不如直接把薯条做好,直接炸薯条就行。这样就不用关心薯条怎么做的了。...多工厂模式就是每种类型的产品单独作为一个工厂,例如:普通薯条单独作为一个工厂,波纹薯条单独作为一个工厂。为什么要这么做?...例如我们的波纹薯条非常复杂,可能需要 100 道工序,那和普通薯条放在同一个工厂制作就不太合适,于是我们单独建了一个制作波纹薯条的工厂。 于是小黑继续对之前的代码做改造。

    35530

    Kotlin学习日志(六)控件使用

    前面学了那么多关于函数、语法、类这些知识,确实是比较枯燥,但却是必要的,因为这些都是在进行业务实现需要的,举个例子,常规功能,登录。你想过需要哪些业务逻辑处理?你不会以为输入账号密码就没事了吗?...(2)由于待显示的字符串需要拼接按钮文本,因此需要通过字符串模板表达式"${***} "将按钮文本置于字符串。 2....1.3 单选按钮RadioButton 单选按钮要在一组按钮中选择其中一项,并且不能多选,这要求个容器确定这组按钮的范围,这个容器便是单选组RadioGroup,单选组RadioGroup实质上是一个布局...,属性为vertical时,单选按钮就在垂直方向上排列,并且RadioGroup下面除了RadioButton外,也可以挂载其他子控件,如TextView、ImageView等,这样看来,它就是一个特殊的线性布局...1.5 文本视图TextView 有没有人觉得TextView很简单?但实际并不简单,比如常见的文字跑马灯效果,一行文本的内容太多,导致无法完全显示,但也不想分行显示,于是就有这个跑马灯效果了。

    1.7K30

    Vue组件设计 | 实现水波涟漪效果的点击反馈指令

    点击反馈 不知道小伙伴们有没有注意过这样一个细节,有的应用按钮,链接,可交互的卡片点击起来十分有感觉,而有的却像是点在白纸上了一样,是什么造成了他们使用户有如此明显的感受区分?.......1.jpg 鼠标移入时的小手、鼠标点击时按钮下压弹起的动画、触屏应用点击时的屏幕震动,这些效果都给予用户一种是的行为产生了这样的效果的直觉,这些效果也被统称为点击反馈,虽然看似是应用中的细枝末节,但是只要稍微投入一点点心思...当用户点击时,会以点击中心为圆心产生一个水波扩散的涟漪效果,适用各个场景,美观又不浮夸,关键是可以给用户带来很直观的反馈。...定制一个波纹默认样式 水波纹实际上就是通过用户点击的位置生成一个小圆圈,并且尺寸逐渐扩大到整个被点击元素的一个过程,所以这里先制定一个水波基本的样式,并设置好过度动画,过度动画应该是一个先慢后快的一个过程...)怎么计算

    82230
    领券