Я столкнулся с той же проблемой и нашел ваш вопрос, когда искал ответ. Я решил это, но я не уверен, что это правильный путь.
3 файла, ваша основная деятельность, ваше представление поверхности и ваш файл XML.
Ваш XML-файл выглядит нормально, у вас есть вид поверхности
<appsys.studios.CustomSurfaceViewOne
android:id="@+id/customSurfaceViewOne1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></appsys.studios.CustomSurfaceViewOne
>
В своей деятельности добавьте implements OnTouchListener
, используйте setContentView(R.layout.newsession);
и после этого, все еще в вашем onCreate()
добавьте эту строку CustomViewOne cvo = (CustomViewOne)findViewById(R.id.customSurfaceViewOne1)
и установите для слушателя значение cvo.setOnTouchListener(this);
затем добавьте свой onTouch
@Override
public boolean onTouch(View v, MotionEvent event) {
customSurfaceViewOne1.myOnTouch(event);
return false;
}
, где myOnTouch()
- это метод в вашем классе customSurfaceViewOne1, где вы будете выполнять все ваши события ontTouch. Обратите внимание, что я прошел в MotionEvent event
.
Опять же, я не уверен, что это правильный способ сделать это, просто я заставил его работать. Причина, по которой я это сделал, состояла в том, чтобы у меня было объявление в виде рекламы над моим видом на поверхность.