gpt4 book ai didi

android - 线性渐变和位图着色器运行不佳

转载 作者:行者123 更新时间:2023-11-29 01:43:16 25 4
gpt4 key购买 nike

我正在尝试为 Android 库 Picasso 创建一个“转换”。这个问题(我认为)对于 ComposeShaders 的工作方式更为普遍。

我正在尝试使用位图着色器在图像顶部应用一个简单的垂直线性渐变。这是代码:

@Override
public Bitmap transform(Bitmap source) {

Bitmap bitmap = Bitmap.createBitmap(source.getWidth(),
source.getHeight(),
source.getConfig());

shaders[0] = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
shaders[1] = new LinearGradient(0,
0,
0,
source.getHeight(),
Color.BLACK,
Color.TRANSPARENT,
Shader.TileMode.CLAMP);
ComposeShader composeShader = new ComposeShader(shaders[0],
shaders[1],
PorterDuff.Mode.DST_IN);

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(composeShader);

Canvas canvas = new Canvas(bitmap);
canvas.drawPaint(paint);

source.recycle();
return bitmap;
}

运行转换时,我得到了漂亮的垂直渐变,但根本看不到位图。所以我基本上只得到一个垂直渐变。帮忙?

其他相关代码:

    Picasso.with(getActivity())
.load(myValidUrl)
.transform(new TopVignetteTransformation())
.into(myImageview);


<ImageView
android:background="@color/dark_gray"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:layout_height="match_parent"
android:layout_width="match_parent"/>

最佳答案

嗯。愚蠢的错别字。为位图着色器获取错误的位图

shaders[0] = new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

关于android - 线性渐变和位图着色器运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23097359/

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