2012-07-03 5 views
0

ActivityImageView이 포함되어있어 사용자가 터치 (또는 마우스 클릭) 기능으로 콘텐츠의 일부를 선택할 수 있도록하고 싶습니다.ImageView에서 콘텐츠 선택 - Android

나는 두 가지를 달성 할 수있는 절차를 쓰고 싶습니다 이미지

  • 반환의 좌표를 포함하는 객체의 선택된 부분에 걸쳐 강조 표시된 창을 그리기

    1. 을 선택 (강조) 픽셀.

      enter image description here

      사용자가 이미지의 어떤 부분에 화면을 터치해야하며 강조 얻을해야합니다

    더 나은 이해를 위해 당신은 내가 만든 최대 작은 모의를 확인할 수 있습니다. 뒤로 버튼을 누르면 Java를 통해 강조 표시된 픽셀의 좌표를 얻고 싶습니다.

    어떻게하는지 이해시켜 주시겠습니까?

    1. 나는 이미지의 픽셀 수준의 정보에 액세스해야합니다 특히

      나는 다음과 같은 발견하고 싶습니다?

    2. 이 기능을 구현하는 데 필요한 클래스는 무엇입니까?
    3. 의사 코드의 아이디어가 있습니까?

    모든 종류의 도움을 얻으세요. 당신은 당신이 다음 정상으로 이미지를 그릴을 통해 하이라이트를 그리는 자신의 코드를 추가 할 슈퍼 호출 할 수 onDraw(...) 방법에 도착하면

  • +0

    -1 투표 아래 나는 이것이 오래 알고 있지만 나는 기본적으로 같은 일을 할 필요가, 나 달걀 같은 객체와 이미지 뷰를 가지고 있고 단지 메소드를 호출 할 사용자가 객체를 포함하는 차원을 클릭 할 때 전체 ImageVIew가 아닌 ​​클릭합니다. 내가 여기에 대답을 볼 수 있지만 여전히 사용자가 내가 ImageView 내부 또는 ImageVIew있는 빈 영역을 싶습니다 개체를 클릭하면 구별하는 방법을 알아낼 수 없습니다. – Binev

    답변

    1

    나는 onTouchEvent(...)

    를 재정 의하여 ImageView는 다음 터치 이벤트를 캡처 할 수 있습니다 서브 클래스 것 상단.

    편집

    음 대신 당신이 그것을 확장하고 자신의 클래스를 작성할 수 ImageView를 사용, 모든 클래스가 그래서 당신은보기가 접촉 될 때 알고에 위치를 저장할 수 있습니다 onTouchEvent(...)를 오버라이드 (override) 할 일은있다 터치 이벤트의 화면. 다음으로 그리기 방법을 편집

    @Override 
    protected void onDraw(Canvas canvas) { 
        super.onDraw(canvas); // So the image you want is drawn as normal 
    
        myMethodForDrawingAFancyHighlight(Canvas canvas); // add your special effects on top of the image 
    } 
    
    +0

    프롬프트 응답을위한 Thks,하지만 당신이 나를 도울 수 있겠 어? 이해가 안 되니? 나는 초보자이다. – Matteo

    +0

    내가 가진 또 다른 기술적 인 질문 : 터치 이벤트가 캡처 될 때 저장되는 좌표는 화면이나 이미지의 픽셀에 상대적 일까? 내가 기억하고 싶은 것은 후자의 것 (픽셀 것)입니다! 그렇지 않다면, 문제를 해결하기위한 제안이 있습니까? – Matteo

    +0

    이미지가 아닌보기에 상대적인 픽셀이됩니다. 나는 얼마나 많은 스크롤이 적용되었는지 또는 어떤 이미지 오프셋이 캔버스 등에 사용되는지 살펴봄으로써 이미지의 픽셀을 계산하려고 시도 할 것을 제안합니다. Good Luck – ScouseChris

    관련 문제