마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지뷰 위에 사각형 도형을 올릴 수 있나요??

0 추천
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        if (mView == null) {
            mView = inflater.inflate(R.layout.img_main, container, false);

            ibtn1 = (Button) mView.findViewById(R.id.btn1);
            ibtn2 = (Button) mView.findViewById(btn2);


            try {
                image2 = (ImageView) mView.findViewById(image);
                String imgpath = "/sdcard/Download/test.jpg";
                Bitmap bm = BitmapFactory.decodeFile(imgpath);
                image2.setImageBitmap(bm);
                Toast.makeText(mParent, "load ok", Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                Toast.makeText(mParent, "load error", Toast.LENGTH_SHORT).show();
            }


            //image2.setImageDrawable(drawable);
            image2.setOnTouchListener(new View.OnTouchListener() {


                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    String action = "";
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            action = "ACTION_DOWN";
                            x = (int) event.getX();
                            y = (int) event.getY();
                            onDraw();
                            break;
                        case MotionEvent.ACTION_MOVE:

                            break;
                        case MotionEvent.ACTION_UP:

                            break;


                    }
                    Log.v("MotionEvent",
                            "action = " + action + ", " +
                                    "x = " + String.valueOf(event.getX()) + ", " +
                                    "y = " + String.valueOf(event.getY()));

                    return true;
                }

                public void onDraw() {
                    Paint paint = new Paint();
                    Canvas canvas = new Canvas();

                    canvas.drawRect(x, y, x + 100, y + 100, paint);
                    paint.setColor(Color.RED);
                }

            });
디바이스 로컬에서 이미지파일을 이미지뷰로 받아옵니다. 그 후 이미지를 터치하는 좌표에 사각형 도형을 표시하려고 합니다. 스크린 좌표를 받는거까지는 하였는데 터치 후에도 사각형이 안그려져서 문의 드립니다.

 

도깨비입술 (180 포인트) 님이 2017년 4월 12일 질문
도깨비입술님이 2017년 4월 13일 수정

2개의 답변

0 추천
안녕하세요.

코드를 봤을때는 이미지뷰에 사각형을 그리진 못 할 것 같네요.

왜 이미지뷰에 사각형을 그리는지는 모르겠지만 그냥 어떤 이미지에 사각형을 위치하고 싶다라고 하신다면

불러온 이미지뷰를 레이아웃안에 넣고 같은 부모안에 사각형 이미지뷰를 gone 해놓으시고

터치시 좌표를 사각형이미지뷰에 셋해서 이동시키면 되지 않을까요?
sero (1,000 포인트) 님이 2017년 4월 20일 답변
0 추천
2개이미즐 ㄹgone시켰다고 visible시키면 되지요...

도움이 되기를...
익명사용자 님이 2017년 4월 22일 답변
...