欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Android软件开发-[整 .pdf

    • 资源ID:39721508       资源大小:2.12MB        全文页数:40页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Android软件开发-[整 .pdf

    Android 软件开发Android 软件开发之盘点所有Dialog 对话框大合集(一)今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。1.确定取消对话框对话框中有2 个按钮通过调用 setPositiveButton 方法和 setNegativeButton 方法可以设置按钮的显示内容以及按钮的监听事件。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 40 页 -我们使用AlerDialog 创建对话框AlertDialog.Builder builder=new AlertDialog.Builder(MainDialog.this);使用 builder设置对话框的title button icon 等等builder.setIcon(R.drawable.icon);builder.setTitle(你确定要离开吗?);builder.setPositiveButton(确定,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)/这里添加点击确定后的逻辑名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 40 页 -showDialog(你选择了确定););builder.setNegativeButton(取消,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)/这里添加点击确定后的逻辑showDialog(你选择了取消););builder.create().show();这个 dialog用于现实 onClick后监听的内容信息privatevoidshowDialog(String str)w AlertDialog.Builder(MainDialog.this).setMessage(str).show();2.多个按钮信息框名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 40 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 40 页 -AlertDialog.Builder builder=newAlertDialog.Builder(MainDialog.this);builder.setIcon(R.drawable.icon);builder.setTitle(投票);builder.setMessage(您认为什么样的内容能吸引您?);builder.setPositiveButton(有趣味的 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)showDialog(你选择了有趣味的);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 40 页 -);builder.setNeutralButton(有思想的,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)showDialog(你选择了有思想的););builder.setNegativeButton(主题强的 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)showDialog(你选择了主题强的););builder.create().show();3.列表框名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 40 页 -这个数组用于列表选择final String mItems=item0,item1,itme2,item3,itme4,item5,item6;AlertDialog.Builder builder=newAlertDialog.Builder(MainDialog.this);builder.setTitle(列表选择框);builder.setItems(mItems,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhich)/点击后弹出窗口选择了第几项showDialog(你选择的 id 为+which+,+mItemswhich);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 40 页 -);builder.create().show();4.单项选择列表框名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 40 页 -mSingleChoice 用于记录单选中的ID int mSingleChoiceID=-1;AlertDialog.Builder builder=newAlertDialog.Builder(MainDialog.this);mSingleChoiceID=-1;builder.setIcon(R.drawable.icon);builder.setTitle(单项选择);builder.setSingleChoiceItems(mItems,0,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 40 页 -mSingleChoiceID=whichButton;showDialog(你选择的 id 为+whichButton+,+mItemswhichButton););builder.setPositiveButton(确定 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)if(mSingleChoiceID 0)showDialog(你选择的是+mSingleChoiceID););builder.setNegativeButton(取消 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton);builder.create().show();5.进度条框名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 40 页 -点击进度条框按钮后开启一个线程计算读取的进度假设读取结束为 100Progress在小于 100 的时候一直在线程中做循环+只到读取结束后,停止线程。mProgressDialog=newProgressDialog(MainDialog.this);mProgressDialog.setIcon(R.drawable.icon);mProgressDialog.setTitle(进度条窗口 );mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);mProgressDialog.setMax(MAX_PROGRESS);mProgressDialog.setButton(确定,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 40 页 -/这里添加点击后的逻辑);mProgressDialog.setButton2(取消 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)/这里添加点击后的逻辑);mProgressDialog.show();newThread(this).start();ic voidrun()intProgress=0;while(Progress MAX_PROGRESS)try Thread.sleep(100);Progress+;mProgressDialog.incrementProgressBy(1);catch(InterruptedException e)/TODO Auto-generated catch blocke.printStackTrace();名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 40 页 -6.多项选择列表框名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 40 页 -MultiChoiceID 用于记录多选选中的id 号 存在 ArrayList中选中后 add 进 ArrayList 取消选中后 remove 出 ArrayList。ArrayList MultiChoiceID=new ArrayList();AlertDialog.Builder builder=newAlertDialog.Builder(MainDialog.this);MultiChoiceID.clear();builder.setIcon(R.drawable.icon);builder.setTitle(多项选择);builder.setMultiChoiceItems(mItems,名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 40 页 -newboolean false,false,false,false,false,false,false,newDialogInterface.OnMultiChoiceClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton,booleanisChecked)if(isChecked)MultiChoiceID.add(whichButton);showDialog(你选择的id 为+whichButton+,+mItemswhichButton);else MultiChoiceID.remove(whichButton););builder.setPositiveButton(确定 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)String str=;intsize=MultiChoiceID.size();for(inti=0;i size;i+)str+=mItemsMultiChoiceID.get(i)+,;showDialog(你选择的是+str););名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 40 页 -builder.setNegativeButton(取消 ,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton);builder.create().show();7.自定义布局讲到自定义布局我就得多说一说了,为什么要多说一说呢?其实自定义布局在Android 的开发中非常重要因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 40 页 -自定义 dialog有什么好处?比如我们在开发过长当中要通过介绍系统发送的一个广播弹出一个dialog.但是 dialog必需是基于activity才能呈现出来如果没有 activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity这样我们收到一条打开dialog的广播后直接启动这个 activity 程序正常运行 这就是自定义dialog的好处。注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话可以自己改一下。AlertDialog.Builder builder=newAlertDialog.Builder(MainDialog.this);LayoutInflater factory=LayoutInflater.from(this);finalView textEntryView=factory.inflate(R.layout.test,null);builder.setIcon(R.drawable.icon);builder.setTitle(自定义输入框 );builder.setView(textEntryView);builder.setPositiveButton(确定,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)EditText userName=(EditText)textEntryView.findViewById(R.id.etUserName);EditText password=(EditText)textEntryView.findViewById(R.id.etPassWord);showDialog(姓名:+userName.getText().toString()+密码:+password.getText().toString(););builder.setNegativeButton(取消,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterface dialog,intwhichButton)名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 40 页 -);builder.create().show();8.读取进度框显示一个正在转圈的进度条loading mProgressDialog=newProgressDialog(this);mProgressDialog.setTitle(读取 ing);mProgressDialog.setMessage(正在读取中请稍候);mProgressDialog.setIndeterminate(true);mProgressDialog.setCancelable(true);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 40 页 -mProgressDialog.show();最后如果你还是觉得我写的不够详细不要紧我把源代码的下载地址贴出来欢迎大家一起讨论学习雨松 MOMO 希望可以和大家一起进步。名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 40 页 -Android 软件开发之盘点自定义View 界面大合集(二)发布于 2011-10-08 今天我用自己写的一个Demo 和大家详细介绍一个Android 中自定义View 中的使用与绘制技巧。1.自定义 view 绘制字符串相信在实际开发过程中必然很多地方都须要用到系统字为什么会用到系统字?方便省内存我相信做过J2ME游戏开发的朋友应该深知内存有多么多么重要而且使用它还可以带来一个更重要的好处就是很方便的可以实现多国语言的切换笔者现在在正在做的一个产品就是可以多语言切换的软件有英语繁体中文等等设想如果使用图片字的话那每个语言都须要出一套图,我用一个例子简单介绍一下绘制字符串。名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 40 页 -packagecn.m15.xys;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.graphics.Paint.FontMetrics;importandroid.os.Bundle;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 40 页 -importandroid.view.Display;importandroid.view.View;publicclassFont extendsActivity publicintmScreenWidth=0;publicintmScreenHeight=0;OverrideprotectedvoidonCreate(Bundle savedInstanceState)setContentView(newFontView(this);/获取屏幕宽高Display display=getWindowManager().getDefaultDisplay();mScreenWidth=display.getWidth();mScreenHeight=display.getHeight();super.onCreate(savedInstanceState);classFontView extendsView publicfinalstaticString STR_WIDTH=获取字符串宽为:;publicfinalstaticString STR_HEIGHT=获取字体高度为:;Paint mPaint=null;publicFontView(Context context)super(context);mPaint=newPaint();Override名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 40 页 -protectedvoidonDraw(Canvas canvas)/设置字符串颜色mPaint.setColor(Color.WHITE);canvas.drawText(当前屏幕宽+mScreenWidth,0,30,mPaint);canvas.drawText(当前屏幕高 +mScreenHeight,0,60,mPaint);/设置字体大小mPaint.setColor(Color.RED);mPaint.setTextSize(18);canvas.drawText(字体大小为18,0,90,mPaint);/消除字体锯齿mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);canvas.drawText(消除字体锯齿后,0,120,mPaint);/获取字符串宽度canvas.drawText(STR_WIDTH+getStringWidth(STR_WIDTH),0,150,mPaint);/获取字体高度canvas.drawText(STR_HEIGHT+getFontHeight(),0,180,mPaint);/从 string.xml读取字符串绘制mPaint.setColor(Color.YELLOW);canvas.drawText(getResources().getString(R.string.string_font),0,210,mPaint);super.onDraw(canvas);/*获取字符串宽名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 40 页 -*param str*return*/privateintgetStringWidth(String str)return(int)mPaint.measureText(STR_WIDTH);/*获取字体高度*/privateintgetFontHeight()FontMetrics fm=mPaint.getFontMetrics();return(int)Math.ceil(fm.descent-fm.top)+2;2.绘制无规则几何图形绘制无规则几何图形似乎在实际工作中很少可以用到原因是用程序去绘制图形即使在精准再好看也不会有美术出的图片好看但是使用程序绘制图形作为学习来说却是基础中的基础,所以建议大家都看一看。名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 40 页 -packagecn.m15.xys;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.graphics.Path;importandroid.graphics.RectF;名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 40 页 -importandroid.os.Bundle;importandroid.view.View;publicclassGeometry extendsActivity publicintmScreenWidth=0;publicintmScreenHeight=0;OverrideprotectedvoidonCreate(Bundle savedInstanceState)setContentView(newGeometryView(this);super.onCreate(savedInstanceState);classGeometryView extendsView Paint mPaint=null;publicGeometryView(Context context)super(context);mPaint=newPaint();mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);OverrideprotectedvoidonDraw(Canvas canvas)super.onDraw(canvas);/设置画布颜色也就是背景颜色canvas.drawColor(Color.WHITE);mPaint.setColor(Color.BLACK);名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 40 页 -canvas.drawText(绘制无规则几何图形喔!,150,30,mPaint);/绘制一条线mPaint.setColor(Color.BLACK);mPaint.setStrokeWidth(4);canvas.drawLine(0,0,100,100,mPaint);/绘制一个矩形mPaint.setColor(Color.YELLOW);canvas.drawRect(0,120,100,200,mPaint);/绘制一个圆形mPaint.setColor(Color.BLUE);canvas.drawCircle(80,300,50,mPaint);/绘制一个椭圆mPaint.setColor(Color.CYAN);canvas.drawOval(newRectF(300,370,120,100),mPaint);/绘制多边形mPaint.setColor(Color.BLACK);Path path=newPath();path.moveTo(150+5,400-50);path.lineTo(150+45,400-50);path.lineTo(150+30,460-50);path.lineTo(150+20,460-50);path.close();canvas.drawPath(path,mPaint);名师资料总结-精品资料欢迎下载-名师精心整理-第 28 页,共 40 页 -3.图片的绘制以及旋转缩放的实现在这点上Android 确实比 J2ME 强大很多手机游戏开发最痛苦的是什么?是游戏引擎的开发,但是工程师会把大部分时间浪费在对坐标上,如果写引擎的时候没有把自适应考虑周全后期会非常痛苦,现在手机屏幕分辨率是各式各样内存大小也是各式各样所以可见自适应屏幕算法有多么的重要。packagecn.m15.xys;importandroid.app.Activity;名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 40 页 -importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.Matrix;importandroid.graphics.Paint;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.LinearLayout;publicclassImage extendsActivity ImageView imageView=null;OverrideprotectedvoidonCreate(Bundle savedInstanceState)imageView=newImageView(this);setContentView(R.layout.image);LinearLayout ll=(LinearLayout)findViewById(R.id.iamgeid);ll.addView(imageView);/向左移动Button botton0=(Button)findViewById(R.id.buttonLeft);botton0.setOnClickListener(newOnClickListener()Override名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 40 页 -publicvoidonClick(View arg0)imageView.setPosLeft(););/向右移动Button botton1=(Button)findViewById(R.id.buttonRight);botton1.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(View arg0)imageView.setPosRight(););/左旋转Button botton2=(Button)findViewById(R.id.buttonRotationLeft);botton2.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(View arg0)imageView.setRotationLeft(););/右旋转Button botton3=(Button)findViewById(R.id.buttonRotationRight);botton3.setOnClickListener(newOnClickListener()名师资料总结-精品资料欢迎下载-名师精心整理-第 31 页,共 40 页 -OverridepublicvoidonClick(View arg0)imageView.setRotationRight(););/缩小Button botton4=(Button)findViewById(R.id.buttonNarrow);botton4.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(View arg0)imageView.setNarrow(););/放大Button botton5=(Button)findViewById(R.id.buttonEnlarge);botton5.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(View arg0)imageView.setEnlarge(););super.onCreate(savedInstanceState);名师资料总结-精品资料欢迎下载-名师精心整理-第 32 页,共 40 页 -classImageView extendsView Paint mPaint=null;Bitmap bitMap=null;Bitmap bitMapDisplay=null;intm_posX=120;intm_posY=50;intm_bitMapWidth=0;intm_bitMapHeight=0;Matrix mMatrix=null;floatmAngle=0.0f;floatmScale=1f;/1为原图的大小publicImageView(Context context)super(context);mPaint=newPaint();mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);bitMap=BitmapFactory.decodeResource(this.getResources(),R.drawable.image);bitMapDisplay=bitMap;mMatrix=newMatrix();/获取图片宽高m_bitMapWidth=bitMap.getWidth();m_bitMapHeight=bitMap.getHeight();名师资料总结-精品资料欢迎下载-名师精心整理-第 33 页,共 40 页 -/向左移动publicvoidsetPosLeft()m_posX-=10;/向右移动publicvoidsetPosRight()m_posX+=10;/向左旋转publicvoidsetRotationLeft()mAngle-;setAngle();/向右旋转publicvoidsetRotationRight()mAngle+;setAngle();/缩小图片publicvoidsetNarrow()if(mScale 0.5)mScale-=0.1;setScale();名师资料总结-精品资料欢迎下载-名师精心整理-第 34 页,共 40 页 -/放大图片publicvoidsetEnlarge()if(mScale 2)mScale+=0.1;setScale();/设置缩放比例publicvoidsetAngle()mMatrix.reset();mMatrix.setRotate(mAngle);bitMapDisplay=Bitmap.createBitmap(bitMap,0,0,m_bitMapWidth,m_bitMapHeight,mMatrix,true);/设置旋转比例publicvoidsetScale()mMatrix.reset();/float sx X轴缩放/float sy Y轴缩放mMatrix.postScale(mScale,mScale);bitMapDisplay=Bitmap.createBitmap(bitMap,0,0,m_bitMapWidth,名师资料总结-精品资料欢迎下载-名师精心整理-第 35 页,共 40 页 -m_bitMapHeight,mMatrix,true);OverrideprotectedvoidonDraw(Canvas canvas)super.onDraw(canvas);canvas.drawBitmap(bitMapDisplay,m_posX,m_posY,mPaint);invalidate();4.播放 frame 动画做游戏的话播放动画可就是必不可少的元素帧动画帧动画顾名思义是一帧一帧的播放。实际在开发中为了节省内存美术会把人物的图片切成一小块一小块然后由程序根据编辑器生成的点把图片在拼接起来这样就可以做到用更少的图片去实现更多的动画效果因为不太方便介绍图片编辑器这个 demo我只给大家简单的介绍一下播放动画的原理后期我会深入讲解。名师资料总结-精品资料欢迎下载-名师精心整理-第 37 页,共 40 页 -如图所示这个小人一直在行走实际上是 4 张图片在来回切换每张图片延迟500 毫秒后播下一张以此类推。packagecn.m15.xys;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Canvas;importandroid.graphics.Color;名师资料总结-精品资料欢迎下载-名师精心整理-第 38 页,共 40 页 -importandroid.graphics.Paint;importandroid.os.Bundle;importandroid.view.View;publicclassFramAnimation extendsActivity publicfinalstaticintANIM_COUNT=4;OverrideprotectedvoidonCreate(Bundle savedInstanceState)setContentView(newFramView(this);super.onCreate(savedInstanceState);classFramView extendsView Bitmap bitmap=newBitmapANIM_COUNT;Bitmap display=null;Paint paint=null;longstartTime=0;intplayID=0;publicFramView(Context context)super(context);for(inti=0;i=500)startTime=nowTime;playID+;if(playID=ANIM_COUNT)playID=0;canvas.drawBitmap(bitmapplayID,100,100,paint);invalidate();名师资料总结-精品资料欢迎下载-名师精心整理-第 40 页,共 40 页 -

    注意事项

    本文(Android软件开发-[整 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开