gpt4 book ai didi

Android布局背景xml纹理

转载 作者:行者123 更新时间:2023-12-05 00:17:38 24 4
gpt4 key购买 nike

我搜索了很多,但没有找到任何东西。我想为布局制作背景,但我不想用颜色或渐变填充它,而是用纹理填充它并重复它。我尝试了这个但没有成功。你能告诉我一个解决方案吗?

card_texture.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/paper_texture"
android:tileMode="repeat"
/>

card_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape

android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">

<solid android:color = "@android:color/transparent"/>

<stroke android:width="2dp"
android:color="@color/text_color"/>

<corners
android:radius="20dp"
/>

</shape>

card_background.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/card_texture" >
<corners
android:radius = "20dp"/>

</item>
<item android:drawable="@drawable/card_shape" />
</layer-list>

这就是我在布局中使用它的方式android:background="@drawable/card_background"

我得到了这样的东西。但我希望纹理的角(用红色标记)是透明的并适合黑色边框

screenshot

最佳答案

我将其命名为res/drawable/bg_tile.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="mirror"
android:dither="true"
android:antialias="true"
/>

我这样使用它:

android:background="@drawable/bg_tile"

显然,我准备了一个水平和垂直镜像的图 block (大多数图 block 都会产生这样的有趣效果)并将其命名为 res/drawable-a-dpi-resolution/tile.png

a-dpi 分辨率为 ldpi、mdpi、...、xxxhdpi

如果您想使用复合背景(即渐变和其上的平铺位图 - 但位图必须以某种方式透明,否则它将覆盖渐变),您可以制作一个 LayerList 背景(以便不同的“层”被一层一层地覆盖)

为此,您需要添加另一个背景文件,即:res/drawable/bg_radial.xml:

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<gradient
android:startColor="#@color/bar_int_md"
android:centerColor="#@color/bar_mid_md"
android:endColor="#@color/bar_ext_md"
android:gradientRadius="480"
android:type="radial"
/>
</shape>

最后是 LayerList,它将它们粘在一起 (res/drawable/bg.xml):

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_radial" />
<item android:drawable="@drawable/bg_tile" />
</layer-list>

请注意,第一个项目首先绘制。接下来的项目被绘制在彼此之上,最后一个是“最上面的”。

所以,最后你会这样使用:

android:background="@drawable/bg"

不错!

关于Android布局背景xml纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318454/

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