2015-10-03 2 views
0

Итак, у меня есть приложение, на главной операции (основной экран) есть карта (файл jpg).Нарисуйте круг, не переключаясь на активность?

Теперь я хочу нарисовать круг на этой карте, потому что пользователь будет искать местоположение, а затем, я хочу отметить местоположение кругом, как я могу это достичь?

Я попытался это:

@Override 
protected void onDraw(Canvas canvas) { 
    // TODO Auto-generated method stub 
    super.onDraw(canvas); 

    paint.setStyle(Paint.Style.STROKE); 
    canvas.drawCircle(50, 50, 30, paint); 
} 

В моем классе DrawDis, и в моем главном классе деятельности, я получил это:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.activity_main); 


    //RelativeLayout relativeLayout = new RelativeLayout(this); 
    //relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(
      //ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 

    //setContentView(relativeLayout); 

    //relativeLayout.addView(new DrawDis(this)); 
} 

Я знаю о создании нового макета будет меняться весь экран, но как мне как-то просто рисовать на экране, не меняя активности?

ответ

0

Нижеприведенный фрагмент рисует круг, где пользователь касается изображения.

Также см link

image.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View arg0, MotionEvent arg1) { 
      System.out.println("Touch recieved at "+arg1.getX() + " " + arg1.getY()); 
      touchX = (arg1.getX()); 
      touchY = (arg1.getY()); 

      System.out.println("Touch recieved at "+touchX + " " + touchY); 
      image.setImageBitmap(createImage()); 

      return true; 
     } 
    }); 


public Bitmap createImage(){ 
     Bitmap image = bmp.copy(Bitmap.Config.RGB_565, true); 
     Canvas canvas = new Canvas(image); 
     Paint paint = new Paint(); 
     paint.setStyle(Paint.Style.STROKE); 
     paint.setColor(Color.GREEN); 


     touchX=touchX- image.getWidth()/2; 
     touchY=touchY- image.getHeight()/2; 

     canvas.drawCircle(touchX, touchY, radius, paint); 
     System.out.println("Drew a circle at "+touchX+" " + touchY+" with a radius of "+radius+"."); 
     return image; 
    } 
+0

Я не использую Google Maps, с помощью файла PNG пола, Im создавая Inhouse приложение навигации. Altho, маркер, кажется, интуитивно, интересно, как можно использовать LatLng в моей позиции, так как я не имею ничего общего с Longitud/Lati. – Jozo

+0

Извините за непонимание слова «карта» в вопросе. Проверьте мои изменения. Надеюсь, что это поможет. – prat

+0

Что мой друг, помогает мне больше: D! 1 вопрос tho, где бы было место setOnTouchListener()? Пробовал вставлять фрагмент кода в мой класс MainActivity и получил красный текст на «image.setOnTouchListener», говорит, не могу разрешить изображение символа. – Jozo

Смежные вопросы