2
我正在嘗試爲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;
}
當運行tranformation時,我得到了很好的垂直漸變,但是根本沒有看到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"/>
有趣。你可以在庫中提交一個錯誤並指向這個URL嗎?我會看看。 – dnkoutso
謝謝@dnkoutso。完成。 –
我來看看。 – dnkoutso