gpt4 book ai didi

android - 在图层列表中剪切平铺位图的角

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:27 24 4
gpt4 key购买 nike

我希望完成一些看起来像这里底部的东西(所有四个角,但我只有图像的底部给你看):

enter image description here

我目前拥有的:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/orange_tile"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="0.5dp" />
</shape>
</item>
</layer-list>

但是,根据预览,这让我在每个角落都有一个tiiiny像素:

enter image description here

那么,我该如何剪掉这些角呢?可见的中风不是它,实际上也不是想要的......


尝试过的事情:

向项目中添加实体与我想要的完全相反。可能有一个可能的掩蔽技巧......

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/orange_tile"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item>
<shape android:shape="rectangle">
<color android:color="@color/white" />
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="0.5dp" />
</shape>
</item>
</layer-list>

enter image description here


磁贴:

A simple tile

最佳答案

我能想到几个选项。

  1. 再添加一个背景矩形来隐藏角落:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
    <bitmap android:src="@drawable/orange_tile"
    android:tileMode="repeat"
    android:dither="true"
    android:gravity="center" />
    </item>

    <item>
    <shape android:shape="rectangle">
    <corners android:radius="2dp"/>
    <stroke android:color="@color/white" android:width="0.5dp"/>
    </shape>
    </item>

    <item>
    <shape android:shape="rectangle">
    <corners android:radius="0dp"/>
    <stroke android:color="@color/white" android:width="0.5dp"/>
    </shape>
    </item>

    </layer-list>
  2. 您可以将角矩形移出 View 并使其变大:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
    <bitmap android:src="@drawable/icon_bg"
    android:tileMode="repeat"
    android:dither="true"
    android:gravity="center" />
    </item>

    <item android:top="-1.5dp" android:bottom="-1.5dp"
    android:left="-1.5dp" android:right="-1.5dp"
    >
    <shape android:shape="rectangle">
    <corners android:radius="2dp"/>
    <stroke android:color="@color/white" android:width="1.5dp"/>
    </shape>
    </item>

    </layer-list>

您需要针对这种情况微调偏移量。这个有点 hacky,因为它缩小了磁贴内容。您可能希望在微调时使用 android:scaleX="float"android:scaleY="float" 缩放图像。

  1. 如果您对获得圆角的代码解决方案持开放态度,您也可以尝试 RoundedBitmapDrawable类。

    float cornerRadius = 2f * Resources.getSystem().getDisplayMetrics().density;    

    Bitmap tileBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.orange_tile);
    RoundedBitmapDrawable roundedTileDrawable =
    RoundedBitmapDrawableFactory.create(getResources(), tileBitmap);

    roundedTileDrawable.setCornerRadius(cornerRadius);

关于android - 在图层列表中剪切平铺位图的角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617987/

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