Android 实现圆角图片的简单实例

实现效果图:
本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出。于是自己自定义了个View,实现图片的圆角以及圆形效果。效果图:
Android 圆角图片的实现形式,包括用第三方、也有系统的。比如makeramen:roundedimageview,系统的cardview , glide .fresco 。
compile 'com.android.support:appcompat-v7:24.0.0' compile 'com.makeramen:roundedimageview:2.2.1' compile 'com.android.support:cardview-v7:24.0.0' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.facebook.fresco:fresco:0.12.0'
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/id_cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardBackgroundColor="@color/bg_light_gray"
app:cardCornerRadius="3dp"
app:cardUseCompatPadding="false"
app:cardPreventCornerOverlap="true"
>
<ImageView
android:id="@+id/iv_subject"
android:gravity="center"
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="200dp" />
<TextView
android:paddingLeft="5dp"
android:paddingBottom="5dp"
android:background="@drawable/bg_biaoti"
android:id="@+id/tv_subject"
android:gravity="center_vertical"
android:text=""
android:ellipsize="end"
android:singleLine="true"
android:textSize="13sp"
android:textColor="@color/white"
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.CardView>
iv_round=(RoundedImageView) findViewById(R.id.iv_round); Glide.with(this).load(url).into(iv_round);
iv_cardview=(ImageView)findViewById(R.id.iv_cardview); Glide.with(this).load(url).into(iv_cardview);
iv_fresco=(SimpleDraweeView)findViewById(R.id.iv_fresco);
Glide.with(this).load(url).into(iv_round);
Glide.with(this).load(url).into(iv_cardview);
Uri uri = Uri.parse(url);
iv_fresco.setImageURI(uri);
package roundimageview.forezp.com.roundimageview;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
/**
* Created by Administrator on 2016/8/19 0019.
*/
public class GlideRoundTransform extends BitmapTransformation {
private static float radius = 0f;
public GlideRoundTransform(Context context) {
this(context, 4);
}
public GlideRoundTransform(Context context, int dp) {
super(context);
this.radius = Resources.getSystem().getDisplayMetrics().density * dp;
}
@Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return roundCrop(pool, toTransform);
}
private static Bitmap roundCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;
Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
}
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
canvas.drawRoundRect(rectF, radius, radius, paint);
return result;
}
@Override public String getId() {
return getClass().getName() + Math.round(radius);
}
}
Glide.with(this).load(url).transform(new GlideRoundTransform(this,6)).into(iv_glide);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 实现圆角图片
# 圆角图片的实例
# android自定义imageview实现圆角图片
# Android实现圆形图片或者圆角图片
# Android实现带描边的圆角图片
# Android中实现圆角图片的几种方法
# Android中Glide加载圆形图片和圆角图片实例代码
# Android如何设置圆角图片
# Android关于Glide的使用(高斯模糊、加载监听、圆角图片)
# android 实现圆角图片解决方案
# android 设置圆角图片实现代码
# Android实现圆角图片的方法
# 圆角
# 都是
# 也有
# 不尽人意
# 希望能
# 找个
# 自定义
# 那张
# 谢谢大家
# 第三方
# 贴出
# 稍后
# 在网上
# cardUseCompatPadding
# dp
# bg_light_gray
# cardCornerRadius
# ImageView
# true
# cardPreventCornerOverlap
相关文章:
香港服务器租用每月最低只需15元?
高端云建站费用究竟需要多少预算?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
宝塔建站无法访问?如何排查配置与端口问题?
建站之星安装失败:服务器环境不兼容?
建站主机解析:虚拟主机配置与服务器选择指南
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
实例解析angularjs的filter过滤器
如何正确下载安装西数主机建站助手?
建站主机与服务器功能差异如何区分?
如何在自有机房高效搭建专业网站?
建站主机选择指南:服务器配置与SEO优化实战技巧
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
如何在云主机上快速搭建多站点网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
建站之星图片链接生成指南:自助建站与智能设计教程
视频网站app制作软件,有什么好的视频聊天网站或者软件?
西安大型网站制作公司,西安招聘网站最好的是哪个?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
香港服务器选型指南:免备案配置与高效建站方案解析
建站之星后台密码遗忘如何找回?
制作网站的软件免费下载,免费制作app哪个平台好?
如何高效搭建专业期货交易平台网站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何快速搭建高效香港服务器网站?
如何在云指建站中生成FTP站点?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
广平建站公司哪家专业可靠?如何选择?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
建站之星备案流程有哪些注意事项?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何有效防御Web建站篡改攻击?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
建站之星如何开启自定义404页面避免用户流失?
建站之星安装后界面空白如何解决?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建站之星后台管理:高效配置与模板优化提升用户体验
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何安全更换建站之星模板并保留数据?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
网站制作难吗安全吗,做一个网站需要多久时间?
如何配置WinSCP新建站点的密钥验证步骤?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
*请认真填写需求信息,我们会在24小时内与您取得联系。