gpt4 book ai didi

Android View大纲——使用自定义Path

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:45 25 4
gpt4 key购买 nike

当我按如下方式设置 View 的轮廓时,它工作得很好:

view.setClipToOutline(true);
view.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 16);
}
});

enter image description here

但是,使用 Path 没有任何效果。将 setRoundRect 替换为:

Path path = new Path();
path.addRoundRect(
0, 0, view.getWidth(), view.getHeight(), 16, 16, Path.Direction.CW);
outline.setConvexPath(path);

enter image description here

如何将 View 剪辑到提供的路径?

最佳答案

我知道这对裁剪没有帮助,但我们仍然可以利用 outline.setConvexPath(path); 在高程阴影中,因为它作为高程阴影周围的轮廓工作正常路径。

我附上了一张图片以使其更加清晰:

第一张图片:ImageView with [Image with shadow]

android:outlineProvider="bounds"  
android:elevation="4dp"

第二张图片:在 onDraw() 方法中使用 canvas.clipPath(getShapePath()) 的 CustomImageView [我们将得到裁剪的图像,但是阴影仍然显示为矩形边界]

android:outlineProvider="bounds"  
android:elevation="4dp"

第三张图片:在 onDraw() 方法中使用 canvas.clipPath(getShapePath())outline?.setConvexPath 的 CustomImageView (getShapePath())ViewOutlineProvider 中。 [我们将得到裁剪图像,阴影将与裁剪图像对齐]

android:outlineProvider="bounds" // this will have no effect since it will be override by setConvexPath  
android:elevation="4dp"

Valid XHTML

Download Source Code

关于Android View大纲——使用自定义Path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com