dPad是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dPad是啥意思?相关的知识,希望对你有一定的参考价值。

dPad常见于各大安卓模拟器,相当于手机中的“上下左右中”五个按键(也可用于游戏手柄的按键)。
安卓模拟器是一款模拟软件。它能在电脑上模拟安卓手机系统,并能安装、使用、卸载安卓应用软件,让你在电脑上也能体验操作安卓系统的全过程。dPad是安卓模拟器可以模拟的一个功能
编写代码:

[xhtml] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="move me"
android:layout_x="20px"
android:layout_y="40px" />
</AbsoluteLayout>

activity代码:

[java] view plaincopy
package cn.com.chenzheng_java;

import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.Toast;
/**
* @description 控制手机的上下左右四个方向键
* @author chenzheng_java
*
*/
public class DpadActivity extends Activity
Button button;
DisplayMetrics metrics = new DisplayMetrics();
int screenx = 0 ;//屏幕宽度
int screeny = 0 ;//屏幕高度
int buttonWidth = 80;//按钮宽度
int buttonHeight = 40 ;// 按钮高度
int currentX = 0;// 按钮的当前x坐标
int currentY = 0;// 按钮的当前Y坐标
int step = 0;//移动时候的步长
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.dpad);
button = (Button) findViewById(R.id.myButton1);
getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenx = metrics.widthPixels;
screeny = metrics.heightPixels;
/* buttonWidth = button.getWidth();
buttonHeight = button.getHeight();*/

currentX = (screenx-buttonWidth)/2;
currentY = (screeny-buttonHeight)/2;
step = 2;

button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY));



/**
* 当前后左右键被按下的时候,被触发(这里可是有前提的哦,那就是当前的activity中必须没有view正在监听按键
* ,例如:当前如果有一个EditText正在等待输入,当我们按下dpad时,不会触发事件哦)
* Activity.onKeyDown();
当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理。
默认按下KEYCODE_BACK键后会回到上一个Activity。
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
switch (keyCode)
case KeyEvent.KEYCODE_DPAD_DOWN://按向下键
moveDown();
break;
case KeyEvent.KEYCODE_DPAD_UP:// 按向上键
moveUp();
case KeyEvent.KEYCODE_DPAD_LEFT://按向左键
moveLeft();
case KeyEvent.KEYCODE_DPAD_RIGHT://按向右键
moveRight();
default:
break;


return super.onKeyDown(keyCode, event);


@SuppressWarnings("deprecation")
private void moveDown()
int temp = currentY+step;
if(temp>(screeny-buttonHeight))
showToast("到头了哦!");
button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, screenx, screeny-buttonHeight));

else
currentY = currentY+step;
AbsoluteLayout.LayoutParams params =
new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY);
button.setLayoutParams(params);


//button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY-2));



@SuppressWarnings("deprecation")
private void moveUp()
int temp = currentY-step;
if(temp<=0)
showToast("往上到头了哦!");
button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, screenx, 0));

else
currentY = currentY-step;
AbsoluteLayout.LayoutParams params =
new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY);
button.setLayoutParams(params);




@SuppressWarnings("deprecation")
private void moveLeft()
int temp = currentX-step;
if(temp<=0)
showToast("往左边到头了哦!");
button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, 0, screeny));

else
currentX = currentX-step;
AbsoluteLayout.LayoutParams params =
new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY);
button.setLayoutParams(params);




@SuppressWarnings("deprecation")
private void moveRight()
int temp = currentX+step;
if(temp>=(screenx-buttonWidth))
showToast("往右边到头了哦!");
button.setLayoutParams(new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, screenx-buttonWidth, currentY));

else
currentX = currentX+step;
AbsoluteLayout.LayoutParams params =
new AbsoluteLayout.LayoutParams(buttonWidth, buttonHeight, currentX, currentY);
button.setLayoutParams(params);




/**
* 弹出提示信息
* @param text 提示信息
*/
private void showToast(String text)
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
参考技术A Dpad:老手机上的5方向键(上下左右+中间确定) 参考技术B 创新呈现“dPad空”、“dPad迷”、“dPad沁”、“dPad雅”、“dPad韵”5大风情,以齐备的花色、材质、款式,覆盖各个消费阶层,满足各时尚家装所需。 参考技术C http://blog.csdn.net/chenzheng_java/article/details/6251914 参考技术D   dPad是圣象集团于2011年夏天推出的全新产品,全称叫:圣象dPad简意木门。Pad,是时尚的最佳演绎,Pad,更是简洁的最好表达。圣象dPad木门,创新将Pad时尚内涵引入木门设计,以繁化简、精益求精,引领时尚简约的现代家居。
  圣象dPad木门一切设计灵感源于自然,结合时尚的设计元素点缀,让每扇门都是充满智慧的杰作,每扇门都充满着生命和感动。特别汇聚4大品质,只为让dPad时尚深入每个家庭。独创dPad时尚简意理念,让时尚兼具更高品质的价值;创新5大风格以繁化简,让时尚简意表现更多元化;严选全球优质林木资源,让时尚更有品质,更久远;精工呈现数字化工艺,让时尚更具考验,更有魅力。
  圣象家居创新呈现“dPad空”、“dPad迷”、“dPad沁”、“dPad雅”、“dPad韵”5大风情,以齐备的花色、材质、款式,覆盖各个消费阶层,满足各时尚家装所需。
  圣象集团有限公司,成立于1995年,总部位于上海,是专业从事木地板及相关产业为主以及家居系列产品新技术产品开发、生产、研究和销售、服务的企业。

以上是关于dPad是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

PPPoE是啥意思,PPPoE是啥意思

“?”是啥意思?在 Erlang 中是啥意思? [复制]

“this”这个词是啥意思,“static”是啥意思?

“||”是啥意思在 var 语句中是啥意思? [复制]

CVE是啥意思,CVE是啥意思

“内容”是啥意思:在招摇/openapi“响应”中是啥意思: