Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 窗口已聚焦,忽略的聚焦增益用于提高精灵的高度首选项_Android_Sprite_Sharedpreferences - Fatal编程技术网

Android 窗口已聚焦,忽略的聚焦增益用于提高精灵的高度首选项

Android 窗口已聚焦,忽略的聚焦增益用于提高精灵的高度首选项,android,sprite,sharedpreferences,Android,Sprite,Sharedpreferences,我知道以前有人问过这个问题,我仔细看了所有的答案,不,这不是那个,是的,我在清单上有活动的名称,所以不是那个。 我的问题是: 我有一个精灵在屏幕上移动,在你选择livewallpaper的窗口中,我有一个让用户选择高度的首选项(这样他们就可以上下移动精灵)。唯一的问题是精灵一直在移动,所以当他们使用seekbar上下移动精灵时,我得到了旧的“窗口”已经聚焦,忽略“现在,如果我出去,然后再回来”的焦点增益,当然,这会停止并重新启动它,新的偏好高度已经在他们的屏幕中,所以它会移动到新的高度,但不会在

我知道以前有人问过这个问题,我仔细看了所有的答案,不,这不是那个,是的,我在清单上有活动的名称,所以不是那个。 我的问题是: 我有一个精灵在屏幕上移动,在你选择livewallpaper的窗口中,我有一个让用户选择高度的首选项(这样他们就可以上下移动精灵)。唯一的问题是精灵一直在移动,所以当他们使用seekbar上下移动精灵时,我得到了旧的“窗口”已经聚焦,忽略“现在,如果我出去,然后再回来”的焦点增益,当然,这会停止并重新启动它,新的偏好高度已经在他们的屏幕中,所以它会移动到新的高度,但不会在实时预览中。 以下是精灵代码:

private void addShipOne() { 
        int heightPosition = (screenSized / 2) - (screenSized / /*this.bigShipHeight*/gettheFreakingHeight());
        int widthPosition = 0;
        Point startPoint = new Point(widthPosition, heightPosition);
        this._shipone.add(new SpaceShipOne(this._context, this, startPoint, 125));
(很抱歉我用来测试快速版本的方法名,当时我有点沮丧)哈哈

然后它进入OnDraw方法,然后进入渲染以渲染所有内容

public void render(){
        Canvas canvas = null;
        try{

            canvas = this._surfaceHolder.lockCanvas(null);
            synchronized (this._surfaceHolder) {

                this.onDraw(canvas);

            }

        }finally{
            if(canvas != null){
                this._surfaceHolder.unlockCanvasAndPost(canvas);
            }
        }   
    }
我有另一个偏好,允许用户选择船舶出现的频率。它工作正常,但它从左到右,然后改变船舶,所以它更新频率,然后,但高度一个不工作,我测试了日志,以确保高度int通过,它不这样做,我唯一能想到的是with是当船向左或向右转弯时可能添加的,但从外观上看,它在移动时不起作用。 this.bigShipHeight是新高度值的所在(我刚刚用gettheFreakingHeight()以另一种方式进行了测试)(我对该方法使用了if-else语句,该语句使用了frquency首选项,但效果很好。 只需添加完整的代码部分。 在onDraw(画布)中 我认为34;希波尼"是这样的

for (Renderable renderable : this._shipone) {
            renderable.render(canvas);
        }
任何帮助都将不胜感激。 提前谢谢
Sam

好的,我应该先看看我的sprite类,很抱歉,我再次回答了我自己的问题,这太明显了,这就是我从长期看代码中得到的,我应该走开然后回来,那时总是更清楚

万一别人碰到这个问题,我会给出答案。 在我的sprite课程中,SpaceShipOne运行的时候,我刚刚添加了这个

this.getSprite().setYPos(this._blimp.gettheFreakingHeight());
这会立即更新,没有窗口已经聚焦。 我不知道为什么我昨晚没有看到这个,因为这是唯一一个可以立即添加和更新的地方,我所要做的就是将Y位置设置为首选项。 它就像一个符咒。 希望这能帮助其他人 萨姆