我学了点事件机制,想做个小东西练练手,结果出问题了
1.xml里预览是有视图的,但是运行出来,界面一片白


2.主程序里会出这个警告

下面放代码,Logcat里啥也没有。。我也不知道在哪里打Log比较好
import android.app.Activity;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.Nullable;
public class NewPlaneActivity extends Activity implements View.OnTouchListener {
    private ImageView mPlane;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_plane);
        mPlane = findViewById(R.id.plane_iv);
        //设置touch监听
        mPlane.setOnTouchListener(this);
    }
    private int lastX;
    private int lastY;
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        //得到事件的坐标
        int eventX = (int) event.getRawX();
        int eventY = (int) event.getRawY();
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                //第一次记录lastX/lastY
                lastX = eventX;
                lastY = eventY;
                break;
            case MotionEvent.ACTION_MOVE:
                //计算事件的偏移
                int dx = eventX - lastX;
                int dy = eventY - lastY;
                //根据事件的偏移来移动ImageView
                int left = mPlane.getLeft() + dx;
                int top = mPlane.getTop() + dy;
                int right = mPlane.getRight() + dx;
                int bottom = mPlane.getBottom() + dy;
                mPlane.layout(left, top, right, bottom);
                //再次记录lastX/lastY
                lastX = eventX;
                lastY = eventY;
                break;
            default:
                break;
        }
        return true;//所有的motionEvent都交给ImageView处理
    }
}
<?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:background="@drawable/background">
    <ImageView
        android:id="@+id/plane_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/plane0"
        android:contentDescription="@null"/>
</LinearLayout>
高手们救救我。。我纯菜鸟,如果是低级错误,大家笑笑就好。。。
Copy你的代码测试了一下,代码没啥问题 界面也有东西,图片也能跟着手指移动
你确定,你启动的,是这个NewPlaneActivity吗。
或者你修改下背景颜色看看,有没有效果。你现在是白色的。
你改其他颜色,
又或者你把图片设置100*100看看,会不会显示。