获取各种常见形状的位图

原创 2015年07月07日 19:24:29

有的时候我们需要圆形或者矩形的位图,比如QQ头像是圆形的,还有圆角矩形的,这些是怎么做到呢?

这涉及到Xfermode,所以有必要先看一下XFermode的概念,可参考这篇文章

http://blog.csdn.net/t12x3456/article/details/10432935

下面给出获取圆形位图的具体代码

public Bitmap getRoundBitmap(){
		Paint paint = new Paint();
		int color = paint.getColor();
		Bitmap bmp = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);
		Canvas canvas = new Canvas(bmp);
		canvas.<span style="color:#ff0000;">drawCircle</span>(getWidth()/2, getHeight()/2, Util.dp2px(mContext, 100), paint);
		//paint.setColor(color);
		paint.setXfermode(new PorterDuffXfermode(<span style="color:#ff0000;">PorterDuff.Mode.SRC_IN</span>));
		canvas.drawBitmap(mBmpPhoto, saveMatrix, paint);
		return bmp;
	}
需要什么样的图形,只需要把drawCircle换成相应的方法即可

上述代码中的

Util.dp2px(mContext, 100)方法是将dp转换成像素
public static int dp2px(Context context, float dipValue) { 
<span style="white-space:pre">		</span>final float scale = context.getResources().getDisplayMetrics().density; 
<span style="white-space:pre">		</span>return (int) (dipValue * scale + 0.5f); 
<span style="white-space:pre">	</span>}
对应的还有将sp转换成像素的
public static int sp2px(Context context, float spValue) { 
<span style="white-space:pre">		</span>final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
<span style="white-space:pre">		</span>return (int) (spValue * fontScale + 0.5f); 
<span style="white-space:pre">	</span>}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

圆形头像以及一些常见需求形状自定义ImageView组件

在实际开发中,我们经常会遇到这样的需求,就是无论图片长啥样,我们都要其显示成圆形、圆形加一个边框、矩形加边框,带圆角的矩形等等,我已把自己平常用的组件和demo上传到了github(https://g...

ImageView 透明度改变 位图的获取

xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android...

android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图

android开发-通过HttpURLConnection获取网络内容, Bitmap把二进制格式的图片转为位图 布局:用ImageView显示图片 <LinearLayout xml...

迷宫 GDI 展示 及 读取位图获取信息

迷宫寻路 工具:Visual Studio 2013 平台:Win32 由于是C语言课,我就不适用MFC,DDraw等C++实现的框架了,直接用WindowsAPI,GDI进行,并且这个小程序用D...

[福利]国内首篇利用freetype的跨平台truetype字体真正轮廓(非位图)获取(带完整qt工程代码)-秒杀GetGlyphOutline

前言 所需基本知识点 trueType字体的一些基本概念 trueType字体的基本构成 besier曲线定义 freetype对trueType的解析 解析基本步骤 freetype字体库初始化省略...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)