使用TextView文本替代资源id区分图片

需求又改了,作业提交区的提交逻辑是按照TextView的文本来设定逻辑的,
所以使用 TextView 设置 background 的方式写了按钮样式。

说明

比如,提交音频的逻辑是:

  1. 点击『录制』>>>加载录制音频的布局,
  2. 这时候按钮上要更改显示文本为『提交』
  3. 点击『提交』,则提交音频作业

但是上线之后觉得按钮加文本,不突出。
重新设计了提交按钮为 icon ,没有文本提示。

这就尴尬了,因为之前的点击跳转逻辑,都是通过文本来判断的,
只有图片需要重写一大波逻辑

分析

可以根据资源id来区分也是一样的,这是我最初的想法。

搜到一篇好文章《Android中获取资源的id和url方法总结》

但是,获取资源id需要资源名,根据TextView的background获取到的Drawable是一个bitmap对象,无法获取对应的资源名(每个页面都是一个新对象),也就无法获取到资源id来进行判断,事情陷入了僵局。

后来想到可以通过setTag的方式,记录下来类型,再做区分,
但还未行动,我就想到了更好的方式

解决

设置TextView的字体颜色为透明(transparent),使用背景显示图片.

其实这个时候的 TextView 就是一个带有标记的 ImageView !!!

   
        

问题解决,原来的逻辑也不用改,只需要在相应的位置,更换背景图片即可!


不从探究源码的角度看,灵感会让工作变得轻松 ~


うずまき ナルト

你可能感兴趣的:(使用TextView文本替代资源id区分图片)