Можете ли вы дать больше информации о том, что не работает при запуске этого кода? Разве это не захватывает то, что вы хотите? Это сбой?
Убедитесь, что вы правильно изменили R.id.layoutroot
с помощью корневого макета ... Кроме того, похоже, что он будет работать ...
<com.example.android.snake.SnakeView
android:id="@+id/snake"
android:layout_width="match_parent"
android:layout_height="match_parent"
tileSize="24"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text"
android:text="@string/snake_layout_text_text"
android:visibility="visible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:textColor="#ff8888ff"
android:textSize="24sp"/>
</RelativeLayout>
Редактировать ...
Так, например, если вы используете тот макет, который вы только что там поместили, вы должны изменить R.id.layout
на R.id.snake
, из-за этой строки: android:id="@+id/snake"
.
Я не думаю, что есть простой способ найти / получить идентификатор «корневого» макета представления (если вы хотите сделать скриншот всего, что показывает телефон.
Я только что проверил модуль запуска и другое приложение, похоже, что большинство приложений помещаются в FrameLayout с идентификатором / контентом, поэтому вы можете попробовать использовать android.R.id.content
, но нет никакой гарантии, что это будет работать каждый раз ...