移動とズームのジェスチャーとボタンを備えた ImageView カスタムがあります。Button を最初にクリックしたときに ImageVIew のタッチ イベントを無効にし、次に Button をクリックしたときに ImageViewew のタッチ イベントを有効にする方法。ありがとう。
11686 次
2 に答える
2
試したことはありませんが、次の方法で実行できます。
公開ブール変数を作成する
public boolean isClickedFirstTime = true;
xml で imageView を true に設定し、
あなたのボタンのonClick
@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;
}
}
于 2013-10-18T05:09:55.440 に答える
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
}
于 2013-10-18T05:25:52.950 に答える