我正在尝试为Picasso库实现叠加转换。 所以,我正在将图像加载到图像视图中,并希望使用bitmpap显示叠加
首先,我用透明色填充画布 然后我试图绘制可绘制的
@Override
public Bitmap transform(Bitmap source){
Bitmap workingBitmap=Bitmap.createBitmap(source);
Bitmap mutableBitmap=workingBitmap.copy(Bitmap.Config.ARGB_8888,true);
Canvas canvas=new Canvas(mutableBitmap);
canvas.drawColor(getResources().getColor(R.color.gray_transparent));
BitmapFactory.Options options=new BitmapFactory.Options();
options.inScaled=false;
Bitmap b=BitmapFactory.decodeResource(getResources(),R.drawable.ic_gif_white_24dp,options);
canvas.drawBitmap(b,source.getWidth()/2,source.getHeight()/2,paint);
source.recycle();
return mutableBitmap;
}
问题是当画布大小不同时,我会看到不同的叠加图像大小。我如何能够进行位图缩放取决于画布大小?我希望看到相同的GIF尺寸和不同的画布尺寸。
在第一张图片画布上w = 1280,h = 854,第二张图片w = 480,h = 270
更新
我发现缩放位图的解决方案取决于画布大小,它运行良好,但我希望找到更好的解决方案
BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.ic_gif_white_24dp);
Bitmap drawableBitmap = drawable.getBitmap();
double size = source.getWidth() * 0.15;
Bitmap scaled = Bitmap.createScaledBitmap(drawableBitmap, (int) size, (int) size, true);