我有一个带有移动和缩放设置的ImageView自定义,以及Button。如何在首先单击按钮时禁用ImageVIew上的触摸事件,并在单击按钮秒时在ImageVIew上启用触摸事件。 感谢。
答案 0 :(得分:2)
我还没试过。但你可以用以下方式做到:
制作一个公共布尔变量
public boolean isClickedFirstTime = true;
在xml和
中启用imageView单击按钮
@Override
public void onClick(View v) {
if (v.getId() == R.id.button_id) { //whatever your id of button
if(isClickedFirstTime)
{
imageView.setEnabled(false);
isClickedFirstTime = false;
}
else
{
imageView.setEnabled(true);
isClickedFirstTime = true;
}
}
答案 1 :(得分:1)
我建议您使用布尔值或枚举(下面的ViewState)来帮助您管理活动的状态。进入onTouchEvent回调后,只需返回活动没有所需的状态。
这是一个非常简短的例子,说明如何做到这一点:
private enum ViewState {
LOADING, // Just an example of other states you could have
VIEWING,
EDITING;
}
private ViewState eViewState = ViewState.VIEWING;
/**
* Event attached to your button.
*/
@Override
public void onClick(View v) {
if (eViewState == ViewState.EDITING)
eViewState = ViewState.VIEWING;
else
eViewState = ViewState.EDITING;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Touch events should not be recorded if you're not editing anything.
if (eViewState != ViewState.EDITING)
return false;
// ...
// The rest of your code to scale, zoom, translate, etc
}