2012-02-01 5 views
1

안녕 모두 나는 blackebrry에 새다. 비트 맵을 그리기위한 낮은 수준의 그래픽을 사용하고 싶습니다. 이 bitmapfield에 나는 검은 딸기에있는 저급 도표

  • 마침내 화면에 어떤 시점에서 해제 세 어떤 방향으로 화면에서 드래그를
  • 의 bitmapfield을 선택
    1. Action (작업) 및
    2. 취할 필요가있다.

    어떻게하면됩니까? 'Canvas'가 해결책이 될 수 있다면 ... Canvas 사용 방법에 대한 샘플 코드를 알려줄 수 있습니까?

    또한 드래그 가능한 비트 맵 필드를 만들기위한 다른 방법이 있습니까?

    은 비트 맵을 작성하고 그래픽 그것에 드로잉 사용자 정의 할 그것에서 개체를 얻을 수 있습니다, 첫째

  • 답변

    0

    도와주세요.

    Bitmap myBitmap = new Bitmap(widht, height); 
    Graphics graphics = Graphics.create(myBitmap); 
    
    // now you can draw anything on graphics supported by API 
    

    [편집]

    나는 화면에 드래그에 대한 이미지를 코드 스 니펫 (snippet)을 추가했습니다. 이 코드가 사용자의 측면에서 작동하는지 확인할 수 있습니다.

    class MyScreen extends MainScreen { 
        private final Bitmap myBm; 
        private int wBm; 
        private int hBm; 
        private int xBm; 
        private int yBm; 
        private boolean dragStarted; 
    
        public MyScreen() { 
         myBm = Bitmap.getBitmapResource("img/myBitmap.png"); 
         if (myBm != null) { 
          wBm = myBm.getWidth(); 
          hBm = myBm.getHeight(); 
         } 
        } 
    
        protected void paint(Graphics graphics) { 
         // need to adjust z-index of the items added on screen. 
         super.paint(graphics); 
         if (myBm != null) { 
          graphics.drawBitmap(xBm, yBm, wBm, hBm, myBm, 0, 0); 
         } 
        } 
    
        protected boolean touchEvent(TouchEvent event) { 
         int x = event.getX(1); 
         int y = event.getY(1); 
         int eventCode = event.getEvent(); 
    
         if (dragStarted == false & (eventCode == TouchEvent.DOWN)) { 
          if (isDragActivated(x, y)) { 
           // need to adjust offset. 
           dragStarted = true; 
           updateBitmapLocation(x, y); 
          } 
         } 
    
         if (eventCode == TouchEvent.MOVE && dragStarted) { 
          updateBitmapLocation(x, y); 
         } 
    
         if (eventCode == TouchEvent.UP && dragStarted) { 
          dragStarted = false; 
          updateBitmapLocation(x, y); 
         } 
    
         // need to decide what to return 
         return true; 
        } 
    
        private void updateBitmapLocation(int xTouch, int yTouch) { 
         if (xTouch != xBm && yTouch != yBm) { 
          xBm = xTouch; 
          yBm = yTouch; 
          invalidate(); 
         } 
        } 
    
        private boolean isDragActivated(int x, int y) { 
         return (x >= xBm && x <= xBm + wBm && y >= yBm && y <= yBm + hBm); 
        } 
    } 
    
    +1

    내가이 드래그로 전체 화면을 way..its 시도 .. 내가 실제로 화면 옮기하지 않는 경우에만 화면 – Swati

    +0

    를 이동하지 않고 tmage를 끌어 싶어 당신이있는 경우에 당신은 모든 것을 제어 할 수 있습니다 터치 이벤트. 나는 당신이 무엇을 시도했는지 확신 할 수 없다. 당신의 코드와 당신의 질문을 붙여 넣을 수있다. – Rupak

    관련 문제