今天写项目的时候,遇到了这个东西,写完了,就在记录一份,其实不难。

下面是真相:

其实关键代码就一个方法:

 /*** 圆形的图片*/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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);im=(ImageView) findViewById(R.id.id_im);roundPic();}@Overridepublic 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

app中头像,圆形图片相关推荐

  1. 在APP中的那些图片上传是如何做的?PictureSelector—一个强大的图片选择器。相机和相册选择分开

    文章目录

  2. Android 圆形图片 CircleImageView(Xfermode方式)

    Android中实现圆形图片,总的说来有2种方法. Xfermode方式,就是本文要讲的实现方式. BitmapShader(着色器)和Matrix(矩阵)方式 第二种实现方式的代表作,就是Henni ...

  3. MYSQL圆角矩形表示_android 利用Bitmap获取圆角矩形、圆形图片

    1.在很多时候,我们要显示图片资源,需要将他的资源显示为圆角的:示例源码如下: public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,fl ...

  4. app后端设计(12)--图片的处理

    app上线后,不断接受用户的反馈,于是,反馈非常差的情况下,都会有app的改版. 一旦app的改版,都会有比较大的UI改动,一改动UI,那么图片的尺寸也就必须要改变. 在app后端设计(1)-api( ...

  5. 微信小程序——圆形图片image控件、两个字和三个字对齐

    一.image控件中显示圆形图片 首先来个效果图: 然后我们来看看源码: wxml中: <image class="image_radius" src="../im ...

  6. Unity中通过mask组件裁剪出圆形图片,制作出圆形头像

    1.首先找一张圆形图片和长方形图片 2.添加Image控件,同时将图片换成圆形图片 3.在第一个Image下再放一个Image控件,同时将图片换成长方形图片 4.最关键的一步来了,点击第一个Image ...

  7. 中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...

    今天给大家分享一些在PS中经常用到的实用小技巧,操作简单易上手. 01 拉伸图片人物不变形 在我们在PS里想要拉伸一些图片时,里面的人物往往会跟着一起变形,那么如何改变图片比例的同时,又不影响人物的形 ...

  8. 鸿蒙os事例代码,鸿蒙HarmonyOS App开发造轮子之自定义圆形图片组件的实例代码

    一.背景 在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起 ...

  9. 常见的图片比例有哪些?App中不同图片比例适用场景

    在现代化的今天,图片在app中随处可见.我们通常只关心图片的内容而没有想过图片的比例其实也有一定讲究.目前常见的图片比例有1:1.2:3.4:3.16:9,为什么不同app中需要用到这些不同的图片比例 ...

最新文章

  1. python写出表白_用Python写一个简单的表白-Go语言中文社区
  2. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏
  3. Linux下如何查看系统启动时间和运行时间(转)
  4. rsync的详细配置
  5. 弱网测试用什么农_为什么用木蜡油做的家具,用甲醛测试仪测试会显示甲醛超标?...
  6. JS 函数中的call,apply
  7. 一阶倒立摆的输入和输出是什么_了解一阶高通滤波器传递函数
  8. JavaScript创建对象:深入理解编程原理
  9. 编译DCNv2网络:error: command ‘C:\\Program Files\\NVIDIAGPUComputingToolkit\\CUDA\\v10.0\\bin\\nvcc.exe‘
  10. iis提示“另一个程序正在使用此文件,进程无法访问”解决办法
  11. java负载均衡搭建_负载均衡环境搭建(nginx和tomcat)
  12. VB2015编写的九宫格拼图游戏及暴力求解解法(主要使用datagridview和listbox控件)
  13. 图片文字转换成word软件在线版
  14. 【译】Learn D3 入门文档:Joins
  15. 最大流为什么会等于最小割
  16. 《计算机网络》第七版第一章总结及部分课后习题答案
  17. 2022-2028全球与中国消防无人机市场现状及未来发展趋势
  18. 提高图片的清晰度和加载速度
  19. python小项目超级大脑抱香_“超级大脑”来了!丰泽区建成全市首个区县级大数据中心...
  20. Python提示:Consider using the `--user` option or check the permissions.

热门文章

  1. java占位符是什么_java中占位符
  2. [附源码]java毕业设计停车场信息管理系统
  3. 网络里面如何添加计算机,添加网络打印机,详细教您如何添加网络打印机
  4. 项目(day03网站流量指标统计)
  5. python 声音强度检测_怎样表达一段语音的强度(响度)?
  6. 在Android 设置中的应用中隐藏指定app
  7. iOS文字轮播简单实现(UILabel)
  8. tar 追加压缩文件
  9. uniapp密码登录
  10. 幽灵行动断点量子计算机30秒,游戏新消息:幽灵行动断点BETA公测时间公布中字版真人宣传片...