Sir*_*get 2 android android-ui android-view android-resources android-drawable
我正在尝试创建一个自定义按钮,根据按钮状态(按下,启用等)更改其阴影属性(半径,距离等)
我终于接受了使用XML选择器无法完成的操作,因此我重写了View.drawableStateChanged(),并尝试使用View.getDrawableState()来确定当前状态.
但是,这个函数返回一个int [],我无法弄清楚这个值的含义,以及如何从中提取单个状态.文档是纯粹的废话:
public final int [] getDrawableState()
在API级别1中添加
返回表示视图当前状态的可绘制状态的资源ID数组.
返回当前可绘制状态
我也没能找到在线示例,与此相关的Android源代码非常神秘.
那么,你如何从这个int []中弄清楚,按钮的当前"按下"状态是什么?还是"启用状态"?
我只是通过反复试验来解决这个问题.
该列表包含"true"状态的资源标识符,并且不包含"false"状态的标识符.以下代码满足了我的需求:
// Get the relevant drawable state
boolean statePressed = false, stateEnabled = false;
int[] states = getDrawableState();
for (int state : states)
{
if (state == android.R.attr.state_enabled)
stateEnabled = true;
else if (state == android.R.attr.state_pressed)
statePressed = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |