美文网首页高级UI具体自定义控件
Android 自定义圆形头像1.0

Android 自定义圆形头像1.0

作者: 啥也写不出来的安卓技术人员 | 来源:发表于2020-04-04 11:05 被阅读0次

两种方式   1 本地获取图片  2 通过网络获取网络图片 通过BitmapShader转为圆形图片

两种方式的实现方法相同,只是图片获取不同

一、从本地资源获取图片

//获取本地资源

Resources resources = getResources();

//拿到本地图片

Bitmap bitmap = BitmapFactory.decodeResource( resources, R.mipmap.cut );

二、从网络获取图片

//获取图片的网络路径

String commentHeadPic = resultBean.getCommentHeadPic();

//获取网络图片

try {

        new Thread(  ){

                @Override

                 public void run() {

                        super.run();

                        URL url =null;

                        try {

                            //统一资源定位符

                                url =new URL(commentHeadPic );

                                //HttpURLConnection请求网络

                                HttpURLConnection httpURLConnection = (HttpURLConnection)                                               url.openConnection();

                                //设置超时

                                httpURLConnection.setConnectTimeout(5000 );

                                httpURLConnection.connect();

                                //获取流

                                InputStream inputStream = httpURLConnection.getInputStream();

                                //转为为Bitmap格式

                                Bitmap bitmap = BitmapFactory.decodeStream( inputStream );

                                //自定义view设置bitmap

                                ivPic.setBitmap( bitmap );  

                                inputStream .clone

                }catch (Exception e) {

                        e.printStackTrace();

                }

            }

        }.start();//启动线程

      }catch (Exception e){

            String message = e.getMessage();

            Log.i(TAG,"onBindViewHolder: "+message );

}

图片获取成功后 

创建CircularView类 继承view

//全局变量

private Bitmapbitmap;

private BitmapShadershader;

private int radius;//半径

三个构造方法 无需变动

public void setBitmap(Bitmap bitmap) {

            this.bitmap = bitmap;

}

↑  这是上边通过网络获取图片 设置Bitmap的方法

测量 重写onMeasure()

//获取当前控件的最小值

int width = Math.min( getMeasuredWidth(), getMeasuredHeight() );

radius = width/2;//得到半径

绘制 重写onDraw()

if (bitmap !=null) {

      shader =new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP );

       //创建画笔

        Paint paint =new Paint();

        //抗锯齿

        paint.setAntiAlias(true );

        //设置shader

        paint.setShader(shader );

        //绘制圆形

        canvas.drawCircle(radius,radius,radius,paint);

}

仅供参考

相关文章

  • Android 自定义圆形头像1.0

    两种方式 1本地获取图片 2通过网络获取网络图片通过BitmapShader转为圆形图片 两种方式的实现方法相同,...

  • android自定义圆形头像

    这几天看了项目框架里面的圆形头像,发现其实这个东西并不是很难的东西,学会了原理,无论圆形头像,五角星头像都可以实现...

  • 自定义ImageView完成圆形头像自定义

    自定义ImageView完成圆形头像自定义 前言 我们可以看到现在的好多app的头像都是圆形的,记得应该是一年之前...

  • Android实现头像上传

    Android实现本地上传图片并设置为圆形头像 Android实现类似换QQ头像功能(图片裁剪) android上...

  • Android圆形头像

    现在基本上很多APP会用到圆形头像,而关于这方面也有很多的示例。今天我也把我的分享一下给大家,也是新手一枚,不好的...

  • Android 小技巧之 ImageView

    圆形头像零依赖 values/styles.xml自定义属性 代码

  • Android开发圆形头像

    目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。 ...

  • Android开发——圆形头像

    两种方法,自己写代码实现,用第三方开源库 一、第三方开源控件RoundedImageViewRoundedImag...

  • Android 加载圆形头像

    在 Android 中,加载网络图片还是本地图片,三方库Glide必不可少 1、导入依赖 implementati...

  • android圆形头像实现

    今天我们学习圆形头像的实现原理,先上图 基本上能满足一般的圆形头像功能实现其中包括控件的大小,控件四个角的弧度控制...

网友评论

    本文标题:Android 自定义圆形头像1.0

    本文链接:https://www.haomeiwen.com/subject/vbpdphtx.html