【android】 圆角头像

I:画圆角:

 1   private void roundImg(ImageView iv){
 2
 3   /**本地资源*/
 4
 5   InputStream is = getResources().openRawResource(R.drawable.icon);
 6
 7   Bitmap bitmap = BitmapFactory.decodeStream(is);
 8
 9   /**网络资源*/
10
11   //FileInputStream fis = new FileInputStream(url);
12
13   //Bitmap bitmap = BitmapFactory.decodeStream(fis);
14
15     if(bitmap != null){
16
17     Bitmap zoomBitmap = ImageUtil.zoomBitmap(bitmap,100,100);
18
19     Bitmap roundBitmap = ImageUtil.getRoundedCornerBitmap(zoomBitmap,50.0f);
20
21     iv.setImageBitmap(roundBitmap);
22
23     }
24
25   }

II:ImageUtil工具类

 1 public class ImageUtil {
 2
 3     public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) {
 4
 5         int width = bitmap.getWidth();
 6         int height = bitmap.getHeight();
 7         /**
 8          *
 9          */
10         Matrix matrix = new Matrix();
11         float scaleWidth = (float) w / width;
12         float scaleHeight = (float) h / height;
13         matrix.postScale(scaleWidth, scaleHeight);
14         Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
15         return newbmp;
16     }
17
18
19     public static Bitmap drawableToBitmap(Drawable drawable) {
20         int width = drawable.getIntrinsicWidth();
21         int height = drawable.getIntrinsicHeight();
22         Bitmap bitmap = Bitmap.createBitmap(width, height,
23                 drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
24                         : Bitmap.Config.RGB_565);
25         Canvas canvas = new Canvas(bitmap);
26         drawable.setBounds(0, 0, width, height);
27         drawable.draw(canvas);
28         return bitmap;
29     }
30
31
32     public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {
33
34         Bitmap output = Bitmap
35                 .createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
36         Canvas canvas = new Canvas(output);
37         final int color = 0xff424242;
38         final Paint paint = new Paint();
39         final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
40         final RectF rectf = new RectF(rect);
41
42         paint.setAntiAlias(true);
43         canvas.drawARGB(0, 0, 0, 0);
44         paint.setColor(color);
45         canvas.drawRoundRect(rectf, roundPx, roundPx, paint);
46
47         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
48         canvas.drawBitmap(bitmap, rect, rect, paint);
49         return output;
50     }
51
52     public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) {
53         final int reflectionGap = 4;
54         int width = bitmap.getWidth();
55         int height = bitmap.getHeight();
56
57         Matrix matrix = new Matrix();
58         matrix.preScale(1, -1);
59
60         Bitmap reflectionImage = Bitmap.createBitmap(bitmap,
61                 0, height / 2, width, height / 2, matrix, false);
62
63         Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 2),
64                 Config.ARGB_8888);
65
66         Canvas canvas = new Canvas(bitmapWithReflection);
67         canvas.drawBitmap(bitmap, 0, 0, null);
68         Paint deafalutPaint = new Paint();
69         canvas.drawRect(0, height, width, height + reflectionGap,
70                 deafalutPaint);
71
72         canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
73
74         Paint paint = new Paint();
75         LinearGradient shader = new LinearGradient(0,
76                 bitmap.getHeight(), 0, bitmapWithReflection.getHeight()
77                         + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
78         paint.setShader(shader);
79         // Set the Transfer mode to be porter duff and destination in
80         paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
81         // Draw a rectangle using the paint with our linear gradient
82         canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()
83                 + reflectionGap, paint);
84
85         return bitmapWithReflection;
86     }
87
88 }

【android】 圆角头像

时间: 2024-11-03 13:28:56

【android】 圆角头像的相关文章

android圆角View实现及不同版本这间的兼容

在做我们自己的APP的时候,为了让APP看起来更加的好看,我们就需要将我们的自己的View做成圆角的,毕竟主流也是将很多东西做成圆角,和苹果的外观看起来差不多,看起来也还不错. 要将一个View做成圆角的也很容易,只需要建立一个自定义的Drawable就可以了. 我们在res/drawable下面建立一个shape的drawable,代码如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:

Unity用户自定义圆角头像

前天朋友遇到一个这样的需求,而且比较棘手让我帮忙解决.需求就是棋牌类的游戏,玩家的个人资料中包括自己的头像而且可以浏览相册中的图片或者使用相机拍照设置.关于这个问题我也查阅一些资料,由于涉及安卓部分知识,首先要了解Unity和安卓是如何通信的. 首先看到的是雨松老师的博客:http://www.xuanyusong.com/archives/1480咱们可以一起参考下这篇博客.好了,废话就不多说了,夜已深,开始撸代码吧! 1 新建空的工程 2,头像显示当然要用图片了,就用UGUI的RawImag

Android设置头像,手机拍照或从本地相册选取图片作为头像

 [Android设置头像,手机拍照或从本地相册选取图片作为头像] 像微信.QQ.微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像. 2,让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像. 我现在写一个简单的完整代码例子,说明如何在Android中实现上述两个头像设置功能. MainActivity.java文件: package zhangpgil.photo; import java.io.F

Android圆形头像图Circle ImageView

<Android圆形头像图Circle ImageView> 需要处理的原始图(pic): 使用CircleImageView处理后的图(作为头像): 现在很多的应用都有设置头像的功能,如QQ.微信.微博等.头像有标准的四方形,也有圆形(如QQ).现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类 可以直接在布局文件中加载使用,比如: <RelativeLayout xmlns:android="http://schemas.android.

android圆角矩形有背景颜色

android 圆角矩形,渐变颜色,自定义 首先,在drawable目录下写一个xml,名字随便起(只要符合规范),代码如下: <span style="color:#009900;"><span style="background-color: rgb(255, 255, 255);"><?xml version="1.0" encoding="utf-8"?> <shape xml

Android Demo---如何敲出圆角的Button+圆角头像

经常玩儿App的小伙伴都知道,APP上面有很多按钮都是圆角的,圆形给人感觉饱满,富有张力,不知道设计圆角按钮的小伙伴是不是和小编有着相同的想法`(*∩_∩*)′,听小编公司开发IOS的小伙伴说,他们里面直接有圆角的button,但是对于开发Android的小伙伴就不一样了,里面没有直接的圆角button可以供我们使用,在xml里面布局一个button,还不是圆角的,怎么办nie,方法总比困难多,我们成长的机会又来了,最近在小编的项目中,需要用到圆角的button,还需要用到圆角的头像,经过半天捣

Android圆角矩形创建工具RoundRect类

用于把普通图片转换为圆角图像的工具类RoundRect类(复制即可使用): import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.

Android 圆角的效果实现

Android 自定义ImageView实现圆角图片昨天给学生布置作业,写微信首页,也就是聊天的界面,listView里的item中联系人的头像是圆角的,图形界面如下: 那么我就仔细研究了圆角的具体实现.那么首先,我想到了第一种实现方案:1.就是给ImageView定义shape.xml文件,然后用src指定组件背景.那么想到这个方案的时候,我首先了解了一下ImageView的src和background属性.background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是

android圆角矩形有边框无背景色

我们经常要用到圆角矩形,这也是现在的流行的样式..但是今天在工作中,遇到要写圆角矩形有边框但无背景色的button,本来想让妹子帮忙切图的,但是不想麻烦妹子,自己撑着,说可以做,结果弄了老半天菜搞定的,现在给大家看看,以后避免这麻烦...() <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/and