美文网首页
通过轮廓简单实现一个圆图

通过轮廓简单实现一个圆图

作者: 喵了个呜s | 来源:发表于2017-06-23 16:02 被阅读35次

实现圆图的方法有很多种,这是一种使用轮廓和剪切。

通过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)
                }
            }
        }
    }
}

相关文章

  • 通过轮廓简单实现一个圆图

    实现圆图的方法有很多种,这是一种使用轮廓和剪切。 通过setOutLineProvider提供一个轮廓 通过set...

  • 坚持画画100天水彩练手二便当

    先上成品图,水彩便当练手打卡 一,还是先画线稿,用简单的圆,椭圆,方形等概括轮廓,再细化细节画出线稿。 二,硫酸纸...

  • 原型模式

    原型模式就是通过原型创建多个对象,简单来说就是通过一个对象去复制多个对象类图如下 需要实现Cloneable接口,...

  • 自定义View之qq气泡拖拽消失效果

    先看效果图(本篇实现气泡拖拽消失,没有实现回弹和消失时爆炸效果) 观察效果图,可以发现其中有两个圆(固定圆和拖拽圆...

  • iOS水波扩散效果实现

    实现效果 水波纹从中心从外侧扩散的效果实现: 实现思路 1、通过一个定时器等,重复的创建一个圆;2、将创建的圆,进...

  • 矩特征---OpenCV-Python开发指南(25)

    什么是矩特征 通过前篇博文的学习,我们知道如何从图像中分解轮廓。而矩特征是比较两个轮廓最简单的方法,通过它们的轮廓...

  • 马克笔彩铅笔手绘 | 天冷了,远处传来鹿铃声

    —— 01 —— 起 稿 铅笔简单勾勒一下人物与鹿的轮廓 人物与动物其实都是圆与方的组合 如下图所示 在轮廓的基础...

  • UGUI雷达图《一》

    今天我们使用UGUI来实现这样一个雷达图雷达.gif 简单说下思路主要是通过自己定义顶点的位置来实现绘制多边形。那...

  • UICollectionView实现轮播图

    使用UICollectionView实现一个简单的轮播图效果

  • css的2D转换

    脚本化css下面通过css实现动画效果,可以使用脚本化的css实现滑入,轮廓伸缩的列表,即动态的HTML,一个过时...

网友评论

      本文标题:通过轮廓简单实现一个圆图

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