gpt4 book ai didi

android - 位图重复+圆角

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

我正在尝试创建具有圆角和背景的矩形作为重复位图。我是这样写的,但是在角落里得到了位图。

有人能帮忙吗?

背景.xml

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

<item>
<shape>
<stroke
android:width="1dp"
android:color="#FFFFFF" />

<corners android:radius="50dp" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/carbon_4"
android:tileMode="repeat" />
</item>

</layer-list>

最佳答案

我找到了 this post由 Romain Guy 编写,这是在平铺位图上圆角的更简单方法。这是简短的回答:

class CurvedAndTiled extends Drawable {

private final float mCornerRadius;
private final RectF mRect = new RectF();
private final BitmapShader mBitmapShader;
private final Paint mTilePaint;

CurvedAndTiled(
Bitmap bitmap,
float cornerRadius) {
mCornerRadius = cornerRadius;

mBitmapShader = new BitmapShader(bitmap,
Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);

mTilePaint = new Paint();
mTilePaint.setAntiAlias(true);
mTilePaint.setShader(mBitmapShader);
}

@Override
protected void onBoundsChange(Rect bounds) {
super.onBoundsChange(bounds);
mRect.set(0, 0, bounds.width(), bounds.height());
}

@Override
public void draw(Canvas canvas) {
canvas.drawRoundRect(mRect, mCornerRadius, mCornerRadius, mTilePaint);
}

@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}

@Override
public void setAlpha(int alpha) {
mTilePaint.setAlpha(alpha);
}

@Override
public void setColorFilter(ColorFilter cf) {
mTilePaint.setColorFilter(cf);
}
}

您只需将 View 的背景可绘制设置为这些人中的一员,您就可以开始了。

关于android - 位图重复+圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675161/

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