android - Android - 根据按钮按下/未按下状态更改 textSize
问题描述
我有一个按钮背景,如果状态被按下,它会改变drawable。我可以像下面这样更改文本颜色和背景,但我想更改文本大小。我该怎么做 .XML 方面?
可绘制/button_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/toggle_pressed" android:state_selected="true" />
<item android:drawable="@drawable/toggle_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/toggle_unpressed" />
</selector>
资源/颜色/src_text:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:state_selected="false" android:color="@color/blue2"/>
<item android:state_pressed="true" android:color="@color/color_concrete"/>
<item android:state_pressed="false" android:state_selected="true"
android:color="@color/color_concrete"/>
<item android:color="@color/blue2" />
</selector>
按钮:
<Button
android:id="@+id/playButton"
android:layout_width="200dp"
android:layout_height="70dp"
android:background="@drawable/button_selector"
android:onClick="@{(v)->mainViewModel.playButtonClick(v)}"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@string/play"
android:textColor="@color/src_text"
android:textSize="40sp"
android:visibility="@{mainViewModel.observableVisibilityPlayButton ? v.VISIBLE : v.GONE}"/>
解决方案
您可以创建 Button 的子类并覆盖 onTouch 方法
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// button pressed, change textSize
return true;
case MotionEvent.ACTION_UP:
// button released, revert textSize
return true;
}
return false;
}
推荐阅读
- r - 将同一数据框的列重塑为一个
- excel - 将一列中的数据拆分为多行
- javascript - 使用 React Data Grid 时如何摆脱控制台警告“未定义”
- verilog - 如何使用 Verilog 设置计数器来计算秒数
- javascript - 使用 JavaScript 获取 childNode 属性
- javascript - 如何修复“未找到其依赖项 'kotlinx-coroutines-core'。”
- javascript - 如何调整图像输入的大小以便使用新的宽度和高度生成新的 src 属性?
- javascript - 组合 Keydown 功能不适用于 Mac 键盘
- azure-ad-b2c - AADB2C 自定义策略:声明的数据类型与策略中指定的 ClaimType 的 DataType 不匹配
- java - 通过 webview 使用 pdf 打印创建 Pdf。它创建大约 19 mb 的大尺寸 pdf。但图像大约 500、600 kb 已经压缩