2013-08-19 3 views
0

Допустим, я использую изображение jpg с черным ключом в качестве своего макета в Java Code. Есть ли простой способ получить область из изображения, поэтому я могу использовать region.Contains() для моего onTouchListener?Как получить регион из изображения?

Я искал их, и их нет. Я спрашиваю об этом, потому что Im делает приложение для фортепиано и хотел бы получить области изображений, которые я использую для черно-белых клавиш.

ответ

2

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

Если вы действительно хотите использовать изображение, определите черные области внутри изображения вручную.

Обнаружение регионов в изображении - сложная проблема, одна из которых вы, вероятно, не хотите заниматься такой простой целью. Если у вас было много изображений или часто приходилось это делать, это могло бы стоить головной боли, но, как вы, вероятно, не ... не беспокойтесь об этом.

+0

Согласен. Помимо этого, создавая пианино в коде, вам также нужно определить эти регионы, которые вы хотите проверить. Простейшим примером для экспериментов является создание пользовательского представления. Пусть он нарисовал прямоугольник в центре обзора и изменил цвет на событие касания. Для обнаружения правой клавиши, вероятно, достаточно просто совместить х-координату события касания и посмотреть, в каком «горизонтальном сегменте» пианино он падает. Это вопрос разделения x на ширину ключа фортепиано. – tiguchi

+0

Извините, английский язык не имеет моего первого языка, но позвольте мне понять это прямо. Вы хотите сказать, что наложите кнопки на макет, а затем сделайте области черно-белых клавиш на них сверху. Затем используйте onTouchListener с этими регионами? Я предполагаю, что это так, как это делают большинство приложений для фортепиано, но ни один из них не показывает их исходный код, поэтому не может быть уверен, что LOL. Если я закончу это заболевание, вероятно, открою исходный код для всех, чтобы увидеть!. Спасибо за совет ! – JehovahIsGod

+0

Да, вы можете поместить кнопки сверху, или вы можете создать свои «кнопки» на основе того, где пользователь нажимает на ваш «PianoView», следуйте за мной? Это то, что, как я полагаю, предлагает @NobuGames. –

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