【问题标题】:How to design D-PAD keybord in android? [closed]如何在 android 中设计 D-PAD 键盘? [关闭]
【发布时间】:2012-05-23 00:12:31
【问题描述】:

我想在 android 中设计 D-PAD 键盘。我在 android 中看到了用户配置。我不知道如何使用它。 给一些代码

【问题讨论】:

  • 你能否澄清一下,什么样的应用程序,到目前为止你被认为是什么等?
  • 只想设计一个D-PAD,每个按键执行不同的操作。
  • 您将不得不更具体地说明您需要什么、到目前为止您已经尝试过什么以及遇到问题的地方。低质量的问题往往会被关闭。
  • 我想做的是在屏幕上添加 4 个按钮(如 D-PAD),这些按钮应该与 clickListener 和 onClick()(或 touchListener 和 onTouch())进行不同的操作跨度>
  • SDK的samples/目录的api demo中的按钮示例你见过吗?

标签: android d-pad


【解决方案1】:

不要再从头发明轮子了,用andengine吧:

http://www.andengine.org/blog/2010/07/andengine-on-screen-controls/

并在onLoadScene() 中加载所有必要的内容

@Override
        public Scene onLoadScene() {
                this.mEngine.registerUpdateHandler(new FPSLogger());

                final Scene scene = new Scene();
                scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));

                final int centerX = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
                final int centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;
                final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion);
                final PhysicsHandler physicsHandler = new PhysicsHandler(face);
                face.registerUpdateHandler(physicsHandler);

                scene.attachChild(face);

                this.mDigitalOnScreenControl = new DigitalOnScreenControl(0, CAMERA_HEIGHT - this.mOnScreenControlBaseTextureRegion.getHeight(), this.mCamera, this.mOnScreenControlBaseTextureRegion, this.mOnScreenControlKnobTextureRegion, 0.1f, new IOnScreenControlListener() {
                        @Override
                        public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl, final float pValueX, final float pValueY) {
                                physicsHandler.setVelocity(pValueX * 100, pValueY * 100);
                        }
                });
                this.mDigitalOnScreenControl.getControlBase().setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
                this.mDigitalOnScreenControl.getControlBase().setAlpha(0.5f);
                this.mDigitalOnScreenControl.getControlBase().setScaleCenter(0, 128);
                this.mDigitalOnScreenControl.getControlBase().setScale(1.25f);
                this.mDigitalOnScreenControl.getControlKnob().setScale(1.25f);
                this.mDigitalOnScreenControl.refreshControlKnobPosition();

                scene.setChildScene(this.mDigitalOnScreenControl);

                return scene;
        }

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2013-09-26
    • 1970-01-01
    • 2011-11-28
    相关资源
    最近更新 更多