通过轮廓简单实现一个圆图
来源:互联网 发布:做淘宝怎么发快递 编辑:程序博客网 时间:2024/06/03 21:37
实现圆图的方法有很多种,这是一种使用轮廓和剪切。
通过setOutLineProvider提供一个轮廓
通过setClipToOutLine(true)来让视图按轮廓剪切
代码很简单:
布局activity_main.xml
,上面是原图,下面是圆图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#9f9" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="150dp" android:scaleType="centerInside" android:src="@drawable/cat" /> <ImageView android:id="@+id/iv1" android:layout_width="match_parent" android:layout_height="150dp" android:src="@drawable/cat"/></LinearLayout>
代码:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) with(iv1) { scaleType = ImageView.ScaleType.CENTER_INSIDE clipToOutline = true outlineProvider = object : ViewOutlineProvider() { override fun getOutline(view: View?, outline: Outline) { view as ImageView val radius = Math.min(view.width, view.height) / 2 val centerX = (view.right - view.left) / 2 val centerY = (view.bottom - view.top) / 2 outline.setOval(centerX - radius, centerY - radius, centerX + radius, centerY + radius) } } } }}
阅读全文
0 0
- 通过轮廓简单实现一个圆图
- android 简单实现Banner 轮廓图效果自动播放
- 通过一个简单控制台的实现来漫谈软件工程基本概念
- 通过简单的C语言编程实现一个简易…
- 如何用CorelDRAW实现清除轮廓图
- opencv,已知一个图像的轮廓,取出图像轮廓里的图//C++
- 轮廓图
- OpenCV3.0 Examples学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
- OpenCV示例学习笔记(1)-contours2.cpp-通过findContours 函数实现轮廓提取
- python通过Tkinter库实现的一个简单的文本编辑器代码
- 通过socket和Udp协议简单实现一个群体聊天工具(控制台)
- Structure.Hash(通过数组和链表实现一个简单的Hash)
- 通过内存模拟硬盘实现一个简单的块设备驱动
- 接口测试—-中篇,通过django实现一个非常简单的记事本接口
- 读写锁接口实例-通过ReadWriteLock实现一个简单的缓存
- PHP实现AOP的雏形(通过一个简单的实例来理解PHP的AOP)
- 简单实现一个时钟
- 一个简单Tomcat实现
- sql 更新标识列的当前最大id
- Ubuntu下安装并配置TexStudio
- ss-libev 源码解析udp篇 (1)
- 判断玩家是否开全图挂
- String、StringBuffer与StringBuilder之间区别
- 通过轮廓简单实现一个圆图
- FFMPEG类库打开流媒体的方法(需要传参数的时候)
- java 设计模式-单例模式
- linux--chown
- docker 安装showdoc
- jQuery——选中、不选中、全选、取消全选等复选框操作
- 转:在VS2013中安装配置boost_1_58_0库
- Win7下python集成redis
- 为什么要对URL进行encode