Github最火开源项目-一分钟学会自定义ImageView外貌
2017-03-14 本文已影响832人
小怪兽打葫芦娃
自定义控件
- 一分钟实现贴纸功能
- 一分钟实现TextView高亮
- 一分钟实现新手引导页
- 一分钟实现ViewPager卡片
- 一分钟实现加载对话框
- 一分钟实现轮播图
- 一分钟实现GridView拖拽
- 一分钟实现底部导航栏
- 一分钟实现底部FragmentTabhost
- 一分钟实现多张图片选择
- 一分钟实现仿美拍直播的点赞动画
- 一分钟实现高仿今日头条视频列表
- 一分钟实现购物车加减控件
- 一分钟实现省市县三级联动
- 一分钟实现二维码生成和扫描
- 一分钟实现沉浸式状态栏
- 一分钟实现图片裁剪
- 一分钟实现视频弹幕
- 一分钟实现图片缩放
- 一分钟实现旋转选择器
- 一分钟实现ofo小黄车的引导界面
- 一分钟实现自定义ImageView外貌
- 一分钟实现向左拖拽跳转详情页
- 一分钟实现QQ首页动画特效
- 一分钟实现ViewPager上下滑动
联网
工具
数据库
源码分析相关面试题
Activity相关面试题
- 保存Activity的状态
- 深刻剖析activity启动模式(一)
- 深刻剖析activity启动模式(二)
- 深刻剖析activity启动模式(三)
- Activity Task和Process之间的关系
- 源码分析service开启Activity抛异常?activity不会抛异常
- Activity优雅退出
- onCreate源码分析
Service相关面试题
与XMPP相关面试题
与性能优化相关面试题
与登录相关面试题
与开发相关面试题
- 迭代开发的时候如何向前兼容新旧接口
- 手把手教你如何解决as jar包冲突
- context的原理分析
- 解决ViewPager.setCurrentItem中间很多页面切换方案
- 字体适配
- 软键盘适配
- 机型适配,例如三星、小米、华为、魅族等
- CardView 设置水波纹效果
与人事相关面试题
开源地址:https://github.com/open-android/RoundedImageView
运行效果
使用步骤
1. 在project的build.gradle添加如下代码(如下图)
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
2. 在Module的build.gradle添加依赖
compile 'com.github.open-android:RoundedImageView:v1.0.0'
3. 复制如下代码到xml
<com.itheima.roundedimageview.RoundedImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_33"
android:scaleType="fitCenter"
app:riv_corner_radius="10dip"
app:riv_border_width="1dip"
app:riv_border_color="#333333"
app:riv_oval="false" />
<!--
关键属性解释:
app:riv_corner_radius : 四周角度
app:riv_border_width : 描边宽度
app:riv_border_color : 描边颜色
app:riv_oval="false" : 是否是圆型 , 若为true, 则上面的radius可不用设置。-->
细节
-
当然也可以使用代码来控制
RoundedImageView riv = new RoundedImageView(context); riv.setScaleType(ScaleType.CENTER_CROP); //缩放居中 riv.setCornerRadius((float) 10); // 四周角度 riv.setBorderWidth((float) 2); //描边大小 riv.setBorderColor(Color.DKGRAY); //描边颜色 riv.setImageDrawable(drawable); //图片设置 riv.setBackground(backgroundDrawable); //背景设置 riv.setOval(true); //是否为椭圆
-
当然也可以配合Picasso来对图片进行艺术处理 (黑白照)
Transformation transformation = new RoundedTransformationBuilder() .borderColor(Color.BLACK) .borderWidthDp(3) .cornerRadiusDp(30) .oval(false) .build(); Picasso.with(context) .load(url) .fit() .transform(transformation) .into(imageView);
欢迎关注微信公众号
微信公众号名称:Android干货程序员