안드로이드 이미지뷰 setVisibility
조회수 1721회
안드로이드 스튜디오로 어플 작업중입니다. 이미지뷰를 다루는데 문제가 있어 질문드립니다. 특정 조건일때만 이미지뷰가 나타나고, 그렇지 않으면 이미지뷰가 보이지 않게 하고 싶은데 그 부분 동작이 되지 않습니다. 스레드 문제 때문에 새 스레드와 핸들러를 작성했고, 핸들러가 작동하는거 같긴 하나 이미지뷰 부분은 동작하지 않습니다. 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이 되게끔 하고 싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력