在自定义视图中添加 ImageView

Adding an ImageView in a custom view

我正在尝试根据用户在 GameView 中点击的位置显示 ImageView。我在 android:layout_height="300dp" 上收到一条错误消息 "Error:(15) error: not well-formed (invalid token)." GameView extends ViewGroup。我为 GameView.

实施了 onMeasureonLayoutonDraw

悬停在这些行的末尾会显示这些错误提示:

<com.example.GameView -- 多个根标签

android:layout_height="300dp" -- 标签开始未关闭

<ImageView -- 多个根标签

<com.example.GameView> -- 意外的标记

</LinearLayout> -- 意外的标记

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    <com.example.GameView
        android:layout_width="match_parent"
        android:layout_height="300dp"

        <ImageView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            />
        </com.example.GameView>

</LinearLayout>

我认为你有语法错误。 com.example.GameView 未正确关闭。应该是这样的。

 <com.example.GameView
    android:layout_width="match_parent"
    android:layout_height="300dp">

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        />
</com.example.GameView>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

您错过了 > LinearLayout。

最终布局应如下所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.example.GameView
        android:layout_width="match_parent"
        android:layout_height="300dp">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </com.example.GameView>

</LinearLayout>