简体   繁体   English

如何在另一个透明背景中进行透明切割?

[英]How to make transparent cut in another transparent background?

I would like to make tutorial of new elements in layout, where I put another layer on my whole view.我想为布局中的新元素制作教程,我在整个视图上放置了另一层。 Then I would like to cut some places to see the layer underneath.然后我想剪一些地方来看看下面的层。 In brief cut out that adjusts to the element underneath.简而言之,剪裁适应下面的元素。

Now I make another black transparent layout.现在我制作另一个黑色透明布局。 Then create another layout with white transparent, but it doesn't clean, delete my area with black transparent so effect is like in picture.然后创建另一个白色透明的布局,但它不干净,删除我的黑色透明区域,效果就像图片中一样。 This place should be with transparent white to see what is underneath.这个地方应该是透明的白色,看看下面是什么。 In code look at @+id/test在代码中查看@+id/test

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusableInTouchMode="true">

  

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
[ my linear layout with elements]
    
                </LinearLayout>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/tutorial"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/tutorial_background">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/test"
            android:layout_width="380dp"
            android:layout_height="32dp"
            android:layout_marginStart="15dp"
            android:layout_marginTop="100dp"
            android:layout_marginEnd="16dp"
            android:background="@color/tutorial_white_background"
            android:padding="8dp" />

        <Button
            android:id="@+id/btnGoToWorkList"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="100dp"
            android:layout_marginEnd="100dp"
            android:layout_marginBottom="100dp"
            android:text="OK, TAKE ME TO WORK LIST"
            app:layout_constraintBottom_toTopOf="@+id/tutorialDontShowAgain"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
        <CheckBox
            android:id="@+id/tutorialDontShowAgain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:buttonTint="@color/mdtp_white"
            android:text="@string/tutorial_dont_show_again"
            android:textColor="@color/mdtp_white"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Screen test屏幕测试

You can do it very easily, by using third party library :通过使用第三方库,您可以很容易地做到这一点:

Add this in your root build.gradle file (not your module build.gradle file):将此添加到您的根build.gradle文件(而不是您的模块build.gradle文件)中:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Add the library to your module build.gradle将库添加到您的模块build.gradle

dependencies {
    implementation 'com.github.faruktoptas:FancyShowCaseView:1.3.9'
}

Sample Usage示例使用

new FancyShowCaseView.Builder(this/*Pass Your Context Here*/)
        .focusOn(view/*Pass Your View Object On Which You Want To Focus On*/)
        .title("Pass Title Here")
        .build()
        .show();

You can see result here :你可以在这里看到结果:

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM