У меня есть изображение с разделами, и я хочу, чтобы каждый раздел был кликабельным - PullRequest
2 голосов
/ 29 февраля 2012

Картинка, которую я хочу кликнуть ниже:

enter image description here

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Сначала продублируйте изображение, которое вы хотите использовать в качестве карты изображения, и раскрасьте каждый раздел. Само собой разумеется, разные цвета для каждого раздела: D. Затем создайте два ImageViews в вашем макете. Установите фон первого в качестве изображения, которое вы хотите отобразить на экране, и фон второго, как цвет в одном.

Затем установите видимость второго ImageView на невидимый. Если вы запустите программу в этот момент, вы должны увидеть изображение, которое вы хотите отобразить. Затем используйте слушатель OnTouch и получите цвет пикселя, к которому вы прикоснулись. Цвет будет соответствовать цвету цветного изображения.

В следующем методе getColour необходимо передать координаты x и y события касания. R.id.img2 - это невидимое изображение.

private int getColour( int x, int y)
{
    ImageView img = (ImageView) findViewById(R.id.img2);  
    img.setDrawingCacheEnabled(true);   
    Bitmap hotspots=Bitmap.createBitmap(img.getDrawingCache());   
    img.setDrawingCacheEnabled(false);  
    return hotspots.getPixel(x, y);  
}
1 голос
/ 29 февраля 2012

Вы можете нарезать изображение в Photoshop / Fireworks и т. Д. Затем использовать несколько ImageViews, чтобы отобразить его обратно. Используя RelativeLayout можно будет правильно выровнять их все.

Если вам не понадобится событие onTouch, а затем вычислить, к какой части экрана было произведено касание, получая координаты и т. Д.

ИМО первый вариант проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...