美文网首页
子view如何在父view之外绘制

子view如何在父view之外绘制

作者: _小氓 | 来源:发表于2017-10-31 12:53 被阅读0次

    子view如何在父view之外绘制

    要想实现这个需求需要3个步骤

    • 子View绘制区域对应的父View中添加android:clipToPadding="false",子View就能具备绘制到对应父View的 padding区域的能力(clipToPadding:子View的绘制区域是否在padding里面的,默认为true)
    • 子View绘制区域对应的父View中添加android:clipChildren="false",这样就能具备子View绘制超出父View所在区域的能力。(clipChildren:子View的绘制是否超过padding区域)
    • 最后android:translationX或者ndroid:translationY实现子View绘制超出父View区域。

    效果图

    image

    代码如下

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:background="#3fea1010"
        android:clipChildren="false">
    
        <FrameLayout
            android:clipChildren="false"
            android:clipToPadding="false"
            tools:background="#5fe453c7"
            android:padding="20dp"
            android:layout_gravity="center"
            android:layout_width="330dp"
            android:layout_height="400dp">
            <FrameLayout
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:layout_gravity="center"
                android:clipToPadding="false"
                android:padding="10dp"
                tools:background="#58f4dc">
    
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="130dp"
                    android:layout_gravity="center"
                    android:scaleType="centerCrop"
                    android:src="@drawable/ic_placeholder_2"
                    android:translationY="-150dp"/>
    
            </FrameLayout>
    
        </FrameLayout>
    </FrameLayout>
    

    相关文章

      网友评论

          本文标题:子view如何在父view之外绘制

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