1

私の活動では、ImageView. ピンチズーム機能を搭載。

タッチするImageViewと、サムネイルのレイアウトが表示されます。

しかし、ImageViewサムネイルレイアウトショーをつまむと。ブロックしたいのですが?

どうすればいいですか?

サムネイルレイアウトを表示するコードは次のとおりです。

image.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Boolean openThumbnails=true;
        if(event.getAction() == MotionEvent.ACTION_UP && openThumbnails){
            Log.e("event.getAction()", "MotionEvent.ACTION_UP");
            if(thumbnailsLayout.getVisibility()==View.GONE && header.getVisibility()==View.GONE && openThumbnails){
                thumbnailsLayout.setVisibility(View.VISIBLE);
                header.setVisibility(View.VISIBLE);
                header.bringToFront();
            }
            else{
                thumbnailsLayout.setVisibility(View.GONE);
                header.setVisibility(View.GONE);
            }
        }
        else if(event.getAction() == MotionEvent.ACTION_DOWN){
            Log.e("event.getAction()", "MotionEvent.ACTION_DOWN");
            return true;
        }
        else if(event.getAction()==MotionEvent.ACTION_MOVE){
            Log.e("openThumbnails before", openThumbnails.toString());
            openThumbnails=false;        
            Log.e("openThumbnails and after", openThumbnails.toString());
        }
        return false;
    }
});
4

1 に答える 1

0

openThumbnails は常に true です。メソッドの開始時に設定します。openThumbnail を true に設定するすべてのタッチ イベント (Action_up、action_move など)。だからこそ、あなたはいつもそれを示しています。

image.setOnTouchListener(new OnTouchListener() {
Boolean openThumbnails=true;
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {

                        if(event.getAction() == MotionEvent.ACTION_UP && openThumbnails){
                            Log.e("event.getAction()", "MotionEvent.ACTION_UP");
                            if(thumbnailsLayout.getVisibility()==View.GONE && header.getVisibility()==View.GONE && openThumbnails){
                                thumbnailsLayout.setVisibility(View.VISIBLE);
                                header.setVisibility(View.VISIBLE);
                                header.bringToFront();
                            }
                            else{
                                thumbnailsLayout.setVisibility(View.GONE);
                                header.setVisibility(View.GONE);
                            }
                        }
                        else if(event.getAction() == MotionEvent.ACTION_DOWN){
                            Log.e("event.getAction()", "MotionEvent.ACTION_DOWN");
                            return true;
                        }
                        else if(event.getAction()==MotionEvent.ACTION_MOVE){
                            Log.e("openThumbnails before", openThumbnails.toString());
                            openThumbnails=false;       
                            Log.e("openThumbnails and after", openThumbnails.toString());
                        }
                        return false;
                    }
                });
于 2013-11-06T14:11:06.937 に答える