该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
复习一下layout的API大概的方法供参考(请不要直接Ctrl+C)定义与声明:private WidgetLayout layout;layout = new WidgetLayout(this);setContentView(layout); layout配置:public class WidgetLayout extends ViewGroup { //存放touch的坐标 //存放touch的坐标 private int[] cellInfo = new int[2]; private OnLongClickListener mLongClickListener; private int flag = 0; public WidgetLayout(Context context) { super(context); initializeView(context); // setFocusable(true); //setFocusableInTouchMode(true); cellInfo[0]=120; cellInfo[1]=300; mLongClickListener = new OnLongClickListener() { @Override public boolean onLongClick(View v) { return false; } }; } @Override // 按键按下,所触发的事件 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: break; case KeyEvent.KEYCODE_DPAD_DOWN: break; case KeyEvent.KEYCODE_DPAD_LEFT: break; case KeyEvent.KEYCODE_DPAD_RIGHT: break; case KeyEvent.KEYCODE_DPAD_UP: break; } return super.onKeyDown(keyCode, event); } public void addInScreen(View child, int width, int height) { LayoutParams lp = new LayoutParams(width, height); lp.x = cellInfo[0]; lp.y = cellInfo[1]; child.setOnLongClickListener(mLongClickListener); flag++; addView(child, lp); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); // LayoutParams lp; for(int index=0; index