app中头像,圆形图片
2016-03-04 16:42
239 查看
今天写项目的时候,遇到了这个东西,写完了,就在记录一份,其实不难。
下面是真相:
其实关键代码就一个方法:
当然,我这里只是做了一个小的Dome,真正的项目中应该是在自己相册或者调用系统的相机照相,得到的图片,然后上传到网上,显示到界面上,这样一个过程,就要去封装了。不过上边的方法我做了大量的注释,核心的方法就是这里。下面我把整个代码贴一下:
注:如果上边的代码功能不能实现的话,可以下载Dome......
http://download.csdn.net/detail/jiajia1112223/9452874
下面是真相:
其实关键代码就一个方法:
/** * 圆形的图片 */ private void roundPic() { //这一张图是要进行圆形的图片 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.dsafsdafas); //这一张是一张圆形的透明图片,也是一张魔板吧 Bitmap backBp = BitmapFactory.decodeResource(getResources(),R.drawable.userbg); //获取模板图片的宽。高。规格、布局,画布 alterBitmap = Bitmap.createBitmap(backBp.getWidth(),backBp.getHeight(), backBp.getConfig()); //画一张这样的画布 Canvas canvas = new Canvas(alterBitmap); //画笔 Paint paint = new Paint(); //抗锯齿 paint.setAntiAlias(true); //画一张bitmap,新的矩阵。规格 canvas.drawBitmap(backBp, new Matrix(), paint); //这一步是关键,设置两张图片相交时的处理 paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); bitmap = Bitmap.createScaledBitmap(bitmap, backBp.getWidth(),backBp.getHeight(), true); //产生新图,画好 canvas.drawBitmap(bitmap, new Matrix(), paint); //设置图片 im.setImageBitmap(alterBitmap); }
当然,我这里只是做了一个小的Dome,真正的项目中应该是在自己相册或者调用系统的相机照相,得到的图片,然后上传到网上,显示到界面上,这样一个过程,就要去封装了。不过上边的方法我做了大量的注释,核心的方法就是这里。下面我把整个代码贴一下:
package com.example.sdfasdfadfada; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.os.Bundle; import android.view.Menu; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView im; private Bitmap alterBitmap,bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); im=(ImageView) findViewById(R.id.id_im); roundPic(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } /** * 圆形的图片 */ private void roundPic() { //这一张图是要进行圆形的图片 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.dsafsdafas); //这一张是一张圆形的透明图片,也是一张魔板吧 Bitmap backBp = BitmapFactory.decodeResource(getResources(),R.drawable.userbg); //获取模板图片的宽。高。规格、布局,画布 alterBitmap = Bitmap.createBitmap(backBp.getWidth(),backBp.getHeight(), backBp.getConfig()); //画一张这样的画布 Canvas canvas = new Canvas(alterBitmap); //画笔 Paint paint = new Paint(); //抗锯齿 paint.setAntiAlias(true); //画一张bitmap,新的矩阵。规格 canvas.drawBitmap(backBp, new Matrix(), paint); //这一步是关键,设置两张图片相交时的处理 paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); bitmap = Bitmap.createScaledBitmap(bitmap, backBp.getWidth(),backBp.getHeight(), true); //产生新图,画好 canvas.drawBitmap(bitmap, new Matrix(), paint); //设置图片 im.setImageBitmap(alterBitmap); } }
注:如果上边的代码功能不能实现的话,可以下载Dome......
http://download.csdn.net/detail/jiajia1112223/9452874
相关文章推荐
- android中常见的设计模式有哪些?
- 微信扫描打开APP下载链接提示代码优化(转)
- Android学习笔记----Activity的三个小的技巧
- 微信SDK使用说明
- iOS开发之静态库-基本概念
- Android ScrollLayout判断滑动完毕。
- android源码解析之(一)-->异步消息机制
- android 画 波形
- 2. 软件有很多种,也有各种分类办法: ShrinkWrap (在包装盒子里面的软件,软件在CD/DVD上); Web APP (基于网页的软件); Internal Software (企业或学校或某组织内部的软件); Games (游戏); Mobile Apps (手机应用); Operating Systems (操作系统); Tools
- item带有删除按钮的listview
- Android中Java和JavaScript交互
- iOS消息推送
- Android SD卡简单的文件读写操作
- Swift实现自定义AlertView,灵活添加自定义视图到AlertView,可响应事件
- TextInputLayout-Android M新控件
- android制作.9png图片
- viewpager+fragment,类似微信
- Android数据存储实现的5大方式
- ios第三方库Masonry学习资料(链接)
- SuperMap iObjects .NET 制作2.5D数据详解(二)