自己早期(android1.1)做的一个绘图练习

来源:互联网 发布:红旗歌舞团空难 知乎 编辑:程序博客网 时间:2024/05/18 00:45
仅仅是个练习而已!只做了第一个菜单的事件。其他都没事件。











代码片段
public mPayCanvas(Context context) {super(context); //获得屏幕宽高        WindowManager windowManager = getWindowManager();        Display display = windowManager.getDefaultDisplay();        width = display.getWidth();        height = display.getHeight();        Log.i("TAG", "screenWidth="+width);//320        Log.i("TAG", "screenHeight="+height);//480width=320;height=430;// TODO Auto-generated constructor stubtext=new String[10];paint=new Paint[10];rect=new RectF[10];col=3;//菜单列数state=ST_Instruction;setST(state);setFocusable(true); // 如果要响应按键,必须加上这句clearFocus();//必须加,以防第一次按键时无效。//setClickable(true);setFocusableInTouchMode(true);//setPressed(true);setLongClickable(false);setTitleColor(0xffff0000);}private void draw_Menu(Canvas canvas){//canvas.drawText("菜单", (getWidth()-(int)paint[0].measureText(text[0]))>>1, getHeight()>>1, paint[0]);for(int i=0;i<drawable.length;i++){drawable[i].draw(canvas);canvas.drawText(menu_item[i], drawable[i].getBounds().left, drawable[i].getBounds().bottom+paint[2].getTextSize(), paint[2]);}RectF rect_menu = new RectF(drawable[index].getBounds().left, drawable[index].getBounds().top, drawable[index].getBounds().right, drawable[index].getBounds().bottom+paint[2].getTextSize()+5);canvas.drawRect(rect_menu, paint[3]);drawButton(canvas,true,true);    }    private void touchEvent_Menu(MotionEvent event){    float x=event.getX();float y=event.getY();if(x>rect[0].left&&x<rect[0].right&&y>rect[0].top&&y<rect[0].bottom){switch (index) {case 0:setST(ST_InputNumber);break;case 1:case 2:case 3:Log.i("TAG", "index====="+index);break;default:break;}return;}else if(x>rect[1].left&&x<rect[1].right&&y>rect[1].top&&y<rect[1].bottom){setST(ST_Exit);return;}int xx=drawable[0].getBounds().left;int yy=drawable[0].getBounds().top;int w=drawable[0].getIntrinsicWidth();//32int h=drawable[0].getIntrinsicHeight()+(int)paint[2].getTextSize();//48+int gapX=xx;int gapY=this.gapY-(int)paint[2].getTextSize();//Log.i("TAG", "w=="+w);//    Log.i("TAG", "h=="+h);//    Log.i("gapX", "gapX=="+gapX);//    Log.i("gapY", "gapY=="+gapY);    int indexX=0;int indexY=0;for(int i=0;i<drawable.length;i++){indexX=i%col;    indexY=i/col;    if (x >= xx+indexX*gapX + indexX * w && x < xx+indexX*gapX + (indexX + 1) * w && y >= yy+indexY*gapY + indexY * h && y < yy+indexY*gapY + (indexY + 1) * h) {    this.index=i;    this.indexX=indexX;    this.indexY=indexY;//    Log.i("TAG", "index=="+index);//    Log.i("TAG", "indexX=="+indexX);//    Log.i("TAG", "indexY=="+indexY);//    Log.i("TAG", "==============================================");    keyDown_Menu(KeyEvent.KEYCODE_DPAD_CENTER,null);    break;    }}    }private void drawButton(Canvas canvas,boolean hasLeft,boolean hasRight){    if(hasLeft){    canvas.drawText(text[8], rect[0].left+2, rect[0].bottom-5, paint[0]);//    canvas.drawText(text[8], x+5, height-5, paint[0]);//    rect[0] = new RectF(2, getHeight()-paint[0].getTextSize()-2-5, 2+paint[0].measureText(text[8])+5, getHeight()-2);    canvas.drawRect(rect[0], paint[3]);    }    if(hasRight){    canvas.drawText(text[9], rect[1].left+2, rect[1].bottom-5, paint[0]);//    canvas.drawText(text[9], width-paint[0].measureText(text[9])-2, height-5, paint[0]);//    rect[1] = new RectF(getWidth()-paint[0].measureText(text[9])-5, getHeight()-paint[0].getTextSize()-2-5, getWidth()-2, getHeight()-2);    canvas.drawRect(rect[1], paint[3]);        }    }    private void drawGrid(Canvas canvas){    String[][] pad={{"1","2","3"},{"4","5","6"},{"7","8","9"},{"退格","0","全清"}};    RectF rect=null;    int col=pad[0].length;    int row=pad.length;    int w=80;    int h=60;    int x=((width-col*w)>>1);    int y=(height>>1)-h*2;    for(int i=0;i<row;i++){    for(int j=0;j<col;j++){    rect = new RectF(x+j*w,y+i*h,x+j*w+w,y+h+i*h);    canvas.drawRect(rect, paint[3]);    canvas.drawText(pad[i][j], rect.left+((int)(w-paint[0].measureText(pad[i][j]))>>1),rect.top+(h>>1)+5, paint[0]);    }    }    }
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 运动鞋子买大了一码怎么办 淘宝直播间粉丝福利购优惠券怎么办 微信卡包的券不小心删了怎么办 0pp0手机官网手机总跳屏怎么办 很想买一部手机但是舍不得钱怎么办 自己没钱了还想贷款买手机怎么办 4g手机锁屏密码忘了怎么办 oppo手机锁屏密码忘了怎么办 三星手机锁屏密码忘了怎么办 网上买的手机想退了怎么办 沙棘排湿排毒后皮肤痒怎么办 做了沙棘排毒两次上上痒怎么办? 微信支付打款认证超时怎么办 微信上买东西钱付款了货没发怎么办 掌上道聚城王者轮回分解错了怎么办 鞋子脱胶了怎么办别傻傻用胶水粘 斗鱼主播积分太低无法收礼物怎么办 信誉积分没有了什么也玩不了怎么办 忘记自己电信卡号的密码怎么办 淘宝卖出去东西的钱被冻结了怎么办 手机店铺搞抽奖活动上当了怎么办 网易云音乐上传作品编辑失败怎么办 手机连了wifi后自动扣费怎么办 店铺被低价拍了一部分商品该怎么办 淘宝买家退货快递单号填错了怎么办 卖家同意退款了买家不退货怎么办 淘宝代购衣服有破损不给退怎么办 网上购飞机票身份证号写错了怎么办 交易猫买家把我号清了怎么办 光大普卡额度4万封顶了怎么办 天天特价通过后价格设置错误怎么办 苏宁易购不小心点了免密支付怎么办 别人知道自己京东的账号密码怎么办 oppo手机刷机要锁屏密码怎么办 在苏宁易购退款成功又收到货怎么办 今日头条转发出现未安装微信怎么办 打开手机后自动弹出广告怎么办去除 朋友圈发广告被腾讯屏蔽了怎么办 新商盟手机订烟登录密码忘了怎么办 手机版战神斯巴达幽灵经常崩怎么办 代购买的东西被海关扣了怎么办