Можно ли показать тост сообщение или всплывающее окно при нажатии изображения в Android? - PullRequest
0 голосов
/ 22 апреля 2019

Я создаю приложение, в котором хочу добавить сообщение или показать всплывающее окно при нажатии на изображение.

Примечание. Я не хочу показывать всплывающее окно или всплывающее окно, используя ImageButton, ImageView или Button.

Пожалуйста, ответьте с кодом

Код:

Я хочу, чтобы событие произошло на объекте myImage

Частная карта map;

private ImageButton button;

private SupportMapFragment mapFragment = null;

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

    mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapfragment);
    boolean success = com.here.android.mpa.common.MapSettings.setIsolatedDiskCacheRootPath(
            getApplicationContext().getExternalFilesDir(null) + File.separator + ".here-maps",
            "");

    mapFragment.init(new OnEngineInitListener() {
        @Override
        public void onEngineInitializationCompleted(
                OnEngineInitListener.Error error) {
            if (error == OnEngineInitListener.Error.NONE) {
                // now the map is ready to be used
                map = mapFragment.getMap();

              //  map.setZoomLevel(12);
                // ...

                com.here.android.mpa.common.Image myImage =
                        new com.here.android.mpa.common.Image();



                button = new ImageButton(MainActivity.this);
                button.setImageResource(R.drawable.ic_action_name);

                try {
                    myImage.setImageResource(R.drawable.ic_action_name);
                } catch (IOException e) {
                    e.printStackTrace();
                }


                                    map.addMapOverlay(
                        new MapOverlay(button,
                                new GeoCoordinate(49.203076, -123.133849, 0.0)));


                // Set the map center to Vancouver, Canada.
                map.setCenter(new GeoCoordinate(49.203076, -123.133849), Map.Animation.NONE);



                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(),"Harish",Toast.LENGTH_LONG).show();
                    }
                });

// Создать собственное изображение маркера

            } else {
                System.out.println("ERROR: Cannot initialize SupportMapFragment");
            }
        }
    });
}

Ответы [ 3 ]

0 голосов
/ 22 апреля 2019

Сначала вы можете определить, прикоснулись ли вы к своему изображению или нет, используя событие onTouch, и отобразить свое сообщение, используя метод тоста. Это будет выглядеть примерно так.

public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int x = event.getX()  
int y = event.getY();

switch(action){
case MotionEvent.ACTION_DOWN:
    if (x >= xOfYourBitmap && x < (xOfYourBitmap + yourBitmap.getWidth())
            && y >= yOfYourBitmap && y < (yOfYourBitmap + yourBitmap.getHeight())) {
        //tada, if this is true, you've started your click inside your bitmap
        Toast.makeText(getActivity(), "This is my Toast message!",Toast.LENGTH_LONG).show();

    }
    break;
}
}
0 голосов
/ 22 апреля 2019

Вы можете сделать это, если вы используете ImageView вместо android.media.image. Нет таких методов, как OnClickListener () для android.media.image ...

Другое решение состоит в том, чтобы следовать ответу Четанского Мехара https://stackoverflow.com/users/1725131/chetan-mehra, который выглядит следующим образом

public boolean onTouchEvent(MotionEvent event){
  int action = event.getAction();
  int x = event.getX()  
  int y = event.getY();

  switch(action){
   case MotionEvent.ACTION_DOWN:
      if (x >= xOfYourBitmap && x < (xOfYourBitmap + yourBitmap.getWidth())
        && y >= yOfYourBitmap && y < (yOfYourBitmap + yourBitmap.getHeight())) {
        //tada, if this is true, you've started your click inside your bitmap
         Toast.makeText(getActivity(), "This is my Toast message!",Toast.LENGTH_LONG).show();

      }
      break;
   }
}
0 голосов
/ 22 апреля 2019

да, вы можете сделать это:

yourImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             Toast.makeText(GroupProfile.this, "Your Toast here", Toast.LENGTH_SHORT).show();
             }
        });
...