简介

本人是二本应届毕业生,由于近来找工作,有的公司比较挑学校,好几次都没有笔试的机会。所以我决定弄点让人眼前一亮的东西,因为我个人比较喜欢Android开发(个人觉得我的J2EE比较好,Android只是能开发的程度,深入理解的还不够),所以就萌生了做一个Android版的简历的念头。

预览

因为我本来就是要应聘的,所以信息什么的我也就不隐藏了。另外说一句,我不是设计师,不是美工,所以界面如果丑了点,希望大家也不要见怪。
   
 

涉及技术

Menu创建、调用短信和电话、布局、处理图片

第一步:创建主页面

这篇文章不是教大家怎么入门Android,所以我就假设大家已经有了一定的Android水平了。我们首先创建一个Activity -- MainActivity,开始对其布局。
主界面就是预览中的第一张带有我照片的图片,我们要达到这样的效果: 文字保持在左下角,图片保持在中间靠上的部分。
这个布局很容易实现,最外层使用RelativeLayout,将最后一排文字TextView放在整个布局的最下面最左边,其他的文字一条条的设置在这排文字的上面;头像则让ImageView居中,并且marginTop设置大概40dp就行了。
这样我们的布局就出来了。至于文字的样式就由大家自己去调节,我觉得白色就挺好,个人比较喜欢简单的颜色,呵呵。
这个布局文件是 activity_main.xml,大家可以去查看具体代码。

第二步:圆形照片

接下来我们要处理我们的照片了。为了保证照片的质量,我们的照片不使用拉伸,在面对不同分辨率的设备时,我们使用不同的照片这样就行了。话不多说,来处理照片吧。
我先来讲一下怎么处理成为圆形的照片,原理很简单,就是用一个Canvas导入一个Bitmap,在Canvas中截取一个圆形,再将我们的照片放置到里面。
首先我们需要对照片的高和宽进行一定的处理,并且要找到照片的中心,截取一个最大的圆形,再用圆形与照片取交集就能获得圆形照片了。
//将Bitmap处理为圆形的图片private Bitmap circlePic(Bitmap bitmap){int width = bitmap.getWidth();int height = bitmap.getHeight();int r = width < height ? width/2:height/2; //圆的半径,取宽和高中较小的,以便于显示没有空白Bitmap outBitmap = Bitmap.createBitmap(r*2, r*2, Bitmap.Config.ARGB_8888); //创建一个刚好2r大小的BitmapCanvas canvas = new Canvas(outBitmap); // 这里的这个Canvas就是我们用来绘制照片的Canvasfinal int color =0xff424242;final Paint paint = new Paint();/*** 截取图像的中心的一个正方形,用于在原图中截取* 坐标如下:* 1.如果 w < h , 左上坐标(0, (h-w)/2) , 右上坐标(w, (h+w)/2)* 2.如果 w > h , 左上坐标((w-h)/2, 0) , 右上坐标((w+h)/2, h)*/final Rect rect = new Rect( width < height ? 0 : (width-height)/2, width < height ? (height-width)/2 : 0,width < height ? width : (width+height)/2, (width < height ? (height+width)/2 : height));//创建一个直径大小的正方形,用于设置canvas的显示与设置画布截取final Rect rect2 = new Rect( 0, 0, r*2, r*2);//提高精度,用于消除锯齿final RectF rectF = new RectF(rect2);//下面是设置画笔和canvaspaint.setAntiAlias(true);canvas.drawARGB(0,0,0,0);paint.setColor(color);//设置圆角,半径都为r,大小为rect2,这样绘制出来的就是一个圆形了canvas.drawRoundRect(rectF, r, r, paint);//设置图像重叠时的显示方式,这个设置很重要,设置了这个属性之后我们画照片进去就会以交集的形式截取,这样就会绘制出圆形的图片了paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//绘制图像到canvascanvas.drawBitmap(bitmap, rect, rect2, paint);return outBitmap;}

这样圆形的图片就处理好了。

我们只需要将处理好了的图片设置到我们定义的控件中就可以了,具体代码如下:
ImageView myPhoto = (ImageView) this.findViewById(R.id.myPhoto);
//my_photo.setImageResource(R.drawable.ic_launcher);
//得到Resources对象
Resources r = getResources();
WindowManager manage=getWindowManager();
Display display=manage.getDefaultDisplay();
int screenWidth=display.getWidth();
//以数据流的方式读取资源
InputStream is = null;
if(screenWidth > 480) {//这段代码是我适应不同的屏幕大小来显示了不同的照片,其实也有不同的处理方式,不过我觉得这样也能满足我的需求is = r.openRawResource(R.drawable.my_photo);
} else {is = r.openRawResource(R.drawable.my_photo1);
}
//获取到BitmapDrawable对象
BitmapDrawable  bmpDraw = new BitmapDrawable(is);
//获得Bitmap
Bitmap bmp = bmpDraw.getBitmap();
myPhoto.setImageBitmap(circlePic(bmp));//绘制好的圆形照片设置到ImageView中
myPhoto.setOnClickListener(new PhotoClickListener());//设置一个点击事件,后面再说

好了,我们已经绘制了圆形的图片和整体的布局了。也就是,我们做到了这一个画面:

结尾

下一篇,我们将会创建菜单和下一个界面。
关于这个项目,我已经托管到了Github上,大家可以去下载浏览源码,我也会继续完善这个项目。
托管地址: https://github.com/xjyaikj/androidresume

Android版简历(一)相关推荐

  1. Android版简历(四)

    涉及技术 自定义控件.自定义控件动画 第一步:继承自定义控件 虽然已经实现了需要的控件,但是这个控件的功能还是不够强大,使用起来也不够方便.举个例子:让 控件的颜色随着能力值的大小而不同或者是 点击之 ...

  2. Android版简历(二)

    涉及技术 Pager控件.Menu使用.短信电话调用 第一步:创建菜单 上篇文章我们已经创建好了主界面,但是仅仅只展示这么一点信息是完全不够的吸引面试官的,所以我们得继续加一些需求. 如果我们成功的让 ...

  3. 优秀Android开发简历都是这么写,你学会也可以进大厂

    最近收了很多程序员的简历,工作经验从1年到十几年不等.发现一个问题,工作经验范围差不多的程序员,简历看起来也差不多- 为啥程序员的简历如此统一?正好最近看到一个分享也分析了这个问题,结合我个人的一些经 ...

  4. Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路...

     Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路 先看一看我的代码运行结果. 代码运行起来初始化状态: 点击开始按钮,唱片机的机械臂匀速接近唱片磁盘,同时唱片磁盘也 ...

  5. [原] Unity调用android版新浪微博

    本文提供unity调用微博android版 SDK 分享图片,现有sdk支持路径调用分享图片 雨凇MOMO已实现; 本文教会大家如何通过byte流分享图片(官方API pic true binary ...

  6. 飞行熊猫游戏源码android版

    这款游戏是前一段时间完成的一个项目,飞行熊猫游戏源码android版,飞行熊猫基于cocos2d游戏引擎开发,包括了谷歌admob广告支持,没有任何版权问题,大家可以自由修改和上传应用商店. 1.本游 ...

  7. android 校讯通 源码,校讯通Android版使用说明.doc

    校讯通Android版使用说明 说明: 以下截图均来自PC模拟器,实际效果会根据手机的Android系统版本高低,像素高低,分辨率大小,屏幕尺寸大小而有所差异,最终效果以自身手机为准! 下载校讯通An ...

  8. 京东商城Android版客户端 安装到手机上就能轻松购物

    京东商城据悉将于近日正式推出"京东商城Android版"客户端,显示出国内电子商务平台全面进驻安卓Android智能手机及平板设备平台的趋势愈演愈烈."京东商城Andro ...

  9. android 人生日历,android版人生日历日子怎么用 安卓版人生日历日子使用教程

    人生日历android版新发3.3.05.10版本,新增日子功能,那么android版人生日历日子怎么用呢?今天小编就为大家分享安卓版人生日历日子使用教程,一起来看看吧! 人生日历的日子,设计成四叶草 ...

最新文章

  1. 每个设计师需知的40个设计素材站
  2. 管理系统中计算机应用第四章重点,管理系统中计算机应用课堂笔记第四章(4)...
  3. bochs调试linux内核学习4 - bochs配置文件的$BXSHARE变量、bochs的System BIOS must end at 0xfffff错误、运行内核0.00版本
  4. macOS上实现Qt应用程序做文件关联打开
  5. JavaScript:document.execCommand()的用法
  6. Thinkphp3.23 关联模型relation方法不存在解决方法
  7. c++ primer5th,习题12.24
  8. Tomcat NIO
  9. offline .net3.5
  10. ASP.NET Core 3.x - 为什么采用新的 Endpoint Routing 路由系统
  11. MVC Layout布局系统
  12. KVM虚拟化查看虚拟机IP
  13. 剑指Offer:二进制中1的个数
  14. 浅谈axios.interceptors拦截器
  15. java swing窗口放置屏幕中央问题思考
  16. Arduino提高篇01—点亮OLED显示屏
  17. EXCEL图表 横坐标日期格式无法修改问题
  18. 参考文献格式字号字体_论文字体字号格式要求是什么?
  19. 计算机基础知识还有那些,关于电脑基础知识有哪些
  20. vue中加载maptalks图标(markers)点击事件InfoWindow添加按钮点击事件

热门文章

  1. JS来判断客户端是否已安装Adobe Reader软件并提示下载安装
  2. 读书笔记《复杂世界的明白人》九边著
  3. WinForm控件之【NotifyIcon】
  4. 百度AI加速器第七期火热招募
  5. BZOJ4808: 马
  6. 7-2 打印学生选课清单 (25分)(c++)
  7. 网络协议分析期末复习专题(一)
  8. 物化--逍遥游 庄子南华(南怀瑾老师)
  9. 北大青鸟深圳嘉华分享Hibernate基础入门内容
  10. 简述yolo1-yolo3_YOLO v4或YOLO v5或PP-YOLO?