안드로이드 이미지뷰 setVisibility

조회수 1711회

안드로이드 스튜디오로 어플 작업중입니다. 이미지뷰를 다루는데 문제가 있어 질문드립니다. 특정 조건일때만 이미지뷰가 나타나고, 그렇지 않으면 이미지뷰가 보이지 않게 하고 싶은데 그 부분 동작이 되지 않습니다. 스레드 문제 때문에 새 스레드와 핸들러를 작성했고, 핸들러가 작동하는거 같긴 하나 이미지뷰 부분은 동작하지 않습니다. onCreate에서 setVisibility(View.INVISIBLE)로 초기 설정은 보이지 않게 해두었고, 다른 메소드 내부에서 조건에 맞으면 setVisibility(View.VISIBLE)이 되게끔 하고 싶습니다. 아래는 코드 일부입니다. 혹시 틀린 부분이 있거나 어떻게 고쳐야 되는지 아시면 알려 주시면 감사하겠습니다ㅠㅠ

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
    img_input = inputFrame.rgba();

    //Core.flip(img_input, img_input, 1);

    if ( img_result != null ) img_result.release();
    img_result = new Mat();

    int[] point;

    detect(cascadeClassifier_face,cascadeClassifier_eye, img_input.getNativeObjAddr(), img_result.getNativeObjAddr());

    point = backPnt();
    Log.d(TAG, "point : " + point[0] + " " + point[1]);

    new Thread(new Runnable() {
        @Override
        public void run() {
            runOnUiThread(new Runnable(){
                @Override
                public void run() {
                    int face = faceCnt();
                    Log.d(TAG, "face : " + face);

                    if(face != 0){
                        Log.d(TAG, "보임");
                        pin.setVisibility(View.VISIBLE);
                    }
                    else{
                        Log.d(TAG, "안 보임");
                        pin.setVisibility(View.INVISIBLE);
                    }

                }
            });
        }
    }).start();

    pin.setX(point[0]);
    pin.setY(point[1]);

    return img_result;
}

pin이 이미지뷰고, face가 특정 조건입니다. face가 0이 아닐때 VISIBLE, 0이면 INVISIBLE이 되게끔 하고 싶습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)